【发布时间】:2017-02-18 12:54:21
【问题描述】:
我是 PHP OOP 的新手,并且了解“警告:从空值创建默认对象”来自于在写入之前未初始化的对象,但我很难理解为什么我会收到错误下面的代码。
请帮忙!
class A { public $varA; }
class B {
public $varB;
function __construct(){ $varB = new A; }
}
$obj = new B;
$obj->varB->varA = "Whatever";
【问题讨论】:
-
如果你给你的类
A一个构造函数会发生什么?此外,不能从 IIRC 类之外设置受保护的属性。 -
你好迈克。 A 类中的构造函数执行正常,但使用 $varA="test";在那个构造函数中是没有意义的,它被遗忘了。如果我使用 $this->varA="test";正如下面 Gergely 所建议的那样,它可以正常工作......只要我像你说的那样将该受保护的财产更改为“公共”。应该已经发现 $varA 只会作用于构造函数,但有时你看不到木头。感谢您的帮助。
-
是的,我没有注意到缺少的
$this