[英]PHP Get parent class variables from child class constructed in the parent constructor
使用以下代码段,为什么$this->foo
在B子类构造函数中返回NULL
? 根据我的阅读,我给人的印象是子类继承了其所有父变量和方法
$a = new A();
class A {
protected $foo;
public function __construct() {
$this->foo = "Hello World";
$b = new B();
}
}
class B extends A {
public function __construct() {
var_dump($this->foo);
}
}
该问题的选定答案似乎表明$this->foo
应该可以访问。
是因为B是从其父类中构造的吗? 在这种情况下,如何访问子类中的变量?
您正在执行new A()
,然后分别在执行new B()
。 您有两个完全独立的对象实例。 在A
的构造函数中发生一个实例无关紧要,这是完全不相关的。 B
扩展A
也不重要。 您有两个独立的对象,并且对象实例不会隐式共享数据,这正是您所期望的。
由于B
的构造函数会覆盖其父级的构造函数,因此它也不执行A
的任何代码,因此,当实例化一个新的B
时,实际上什么也没有发生。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.