Php 当使用_get()赋值时,为什么属性为null?
我上了一节课:Php 当使用_get()赋值时,为什么属性为null?,php,Php,我上了一节课: class MyClass { function __get($name) { $this->{$name} = $_SESSION[$name]; } public function isNull(){ return $this->MyVar === null; } } var\u dump($obj->isNull())/$obj是MyClass的实例始终输出bool(true)无所谓$\u会话[
class MyClass {
function __get($name) {
$this->{$name} = $_SESSION[$name];
}
public function isNull(){
return $this->MyVar === null;
}
}
var\u dump($obj->isNull())/$obj是MyClass的实例
始终输出bool(true)
无所谓$\u会话['MyVar']
是否设置。但是如果我添加$this->MyVar
beforereturn$this->MyVar==null代码>按预期工作
似乎执行了\uuu get()
(因为$MyVar
未设置为不可访问),但属性在第二次使用之前保持为空
它发生是因为它根本没有设置吗?如何避免使用额外的行($this->MyVar;
)?\uu get()
必须返回该值。将其更改为:
function __get($name) {
return $_SESSION[$name];
}
\uu get()
必须返回该值。将其更改为:
function __get($name) {
return $_SESSION[$name];
}
为什么要在getter中设置属性?为什么要在getter中设置属性?