这似乎很简单,但我没有得到它现在相当长的一段做...如何在父类的属性中存储子类?
class Main
{
public $sub1;
public $sub2;
public function __construct()
{
$this->sub1 = new Sub1();
$this->sub2 = new Sub2();
}
}
class Sub1 extends Main
{
public function __construct() {}
public function helloWorld()
{
echo "hello world";
}
}
class Sub2 extends Main
{
public function __construct()
{
$this->sub1->helloWorld();
}
}
new Main();
代码的结果是致命错误:调用一个成员函数的helloWorld()。但为什么?我不明白为什么当我尝试从sub2访问它时,Main类的sub1属性为NULL。任何人都可以向我解释吗?我在OOP编程方面做了些什么基本错误的事情?我伤害了任何概念吗?有没有更好的解决方案?
此致敬礼!
谢谢。现在我甚至明白了为什么在静态上下文中调用构造函数(: –