php子类调用父类方法
A. 在php中,子类extends继承了父类,当子类和父类同时存在构造函数__construct先执行哪一个呢
1、如果父类和子类中都没有显式的定义__construct,在实例化子类对象时,只会隐含的调用子类自己的构造方法。
2、如果父类中有显式的构造方法__construct,而子类中没有定义__construct,在实例化子类对象时,就会调用父类中的构造方法。
3、如果父类和子类中都显式的定义了__construct,在实例化子类对象时,只会调用子类自己的构造方法(这就像是子类重构了父类的构造方法),而如果也想要调用父类的构造方法的话,就需要在子类的__construct 方法中显式的调用,(如 __construct(){ parent::_construct();})。
(1)php子类调用父类方法扩展阅读
子类的构造函数名与子类名相同。
在子类里父类的构造函数不会自动执行。
要在子类里执行父类的构造函数,必须执行类似以下语句:
$this->[父类的构造函数名()]
类的构造函数统一命名为__construct()。
子类的构造函数名也是__construct()(也是废话)。
在子类里父类的构造函数会不会执行,分两种情况:
1、如子类不定义构造函数 __construct(),则父类的构造函数默认会被继承下来,且会自动执行。
2、如子类定义了构造函数 __construct(),因为构造函数名也是__construct(),所以子类的构造函数实际上是覆盖(override)了父类的构造函数。这时执行的是该子类的构造函数。
这时如果要在子类里执行父类的构造函数,必须执行类似以下语句:parent::__construct();
B. php 父类静态 怎么调用 子类静态
直接用 类名::方法名/变量名
class Test{
private static $a=123;
private static function Do(){
echo "此租扮啦啦啦啦啦";
}
}
echo Test::$a;
Test::Do();
在那都可以这样调用. 在自型旁己森灶里面调用就用self::$a self::Do()