PHP-将值传递给嵌套对象 - 警告:从空值创建默认对象



我是php oop的新手,并且了解"警告:从空值创建默认对象"来自于在写作之前未初始化的对象,但是我正在努力理解为什么我在以下代码中遇到错误。

请帮助!

class A { public $varA; }
class B {
    public $varB;
    function __construct(){ $varB = new A; }
}
$obj = new B;
$obj->varB->varA = "Whatever";

创建对象的实例时,应使用伪变量" $ this" 来解决对象的属性。

在您的代码中,第5行中的$varB并未解决类属性,而是局部变量,该变量在函数完成后立即被销毁(因为它丢失了对其的所有引用)。在" 变量范围"手动页面中阅读有关此行为的更多信息。

所以您的代码应该看起来像这样:

class A { public $varA; }
class B {
    public $varB;
    function __construct(){ $this->varB = new A(); }
}
$obj = new B();
$obj->varB->varA = "Whatever";
var_dump($obj);

最新更新