gpt4 book ai didi

php - 在php继承中执行__constructor()

转载 作者:可可西里 更新时间:2023-11-01 00:11:17 24 4
gpt4 key购买 nike

在 php 中,如果 A 扩展 B,B 的 _constrctor() 会在 A 实例化时自动执行吗?还是我必须调用 parent->_constructor()?

最佳答案

PHP 寻找它能找到的最顶层(最接近实例化类)__construct 方法。然后它只执行那个。

Class A {
public function __construct() {
echo "From A";
}
}
Class B extends A {
public function __construct() {
echo "From B";
}
}
Class C extends A {}
Class D extends B {}
Class E extends B {
public function __construct() {
echo "from E";
}
}

new A(); // From A
new B(); // From B
new C(); // From A
new D(); // From B
new E(); // From E

并且 parent 访问列表中的下一个,直到没有更多(此时它会产生错误)...

因此,在类 E 中,运行 parent::__construct() 将执行类 B 的构造函数。

在类 B 中,运行 parent::__construct() 将执行类 A 的构造函数。

A 类中,运行 parent::__construct() 会产生错误,因为没有构造函数...

关于php - 在php继承中执行__constructor(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com