Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当使用_get()赋值时,为什么属性为null?_Php - Fatal编程技术网

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
before
return$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中设置属性?