0

我做了一个类:

class MyClass {
    function __get($name) {
        $this->{$name} = $_SESSION[$name];
    }

    public function isNull(){
        return $this->MyVar === null;
    }
}

var_dump($obj->isNull()) //$obj is instance of MyClass总是输出设置与否bool(true)无关紧要$_SESSION['MyVar']。但是,如果我按预期添加$this->MyVar;之前return $this->MyVar === null;的作品。

好吧,它似乎__get()已执行(因为$MyVar未设置因此无法访问)但属性保持 NULL 直到第二次使用。

它发生是因为它根本没有设置吗?如何避免使用额外的行($this->MyVar;)?

4

1 回答 1

6

__get()必须返回值。将其更改为:

function __get($name) {
    return $_SESSION[$name];
}
于 2012-05-27T16:25:08.877 回答