php直接用类名调用静态方法会不会触发类或者父类的构造函数?
淡淡烟草味
淡淡烟草味 2017-07-07 10:34:10
[PHP讨论组]

如题,php直接用类名调用静态方法,两个问题:

1 会调用当前类的构造函数吗?

2 会调用当前类的父类的构造函数吗?

淡淡烟草味
淡淡烟草味

全部回复(3)
欧阳克

你应该动手测试一下,浏览器是最好的老师
实例一:
<?php
class A{

function __construct(){echo"A::构造函数";}
static function myFun(){echo "你好,很高兴为你答题!";}

}
A::myFun();
?>
实例二:
<?php
class A{

function __construct(){echo"A::构造函数";}

}
class B extends A{

static function myFun(){echo "你好,很高兴为你答题!";}

}
B::myFun();
?>

给我你的怀抱

1.不会
2.不会

构造方法只在实例化时调用,静态方法没有实例生成,不会调用构造方法

伊谢尔伦

不会的,只要在一个类被实例化的时候才会调用其构造方法,静态方法是存储在静态代码区的,是随着类的加载而被加载进来的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号