我做了一個類:爲什麼在使用__get()分配它的值時屬性爲null?
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']
設置與否並不重要。但如果我在return $this->MyVar === null;
按預期工作之前添加$this->MyVar;
。
好像看起來__get()
被執行(因爲$MyVar
沒有設置,所以它是無法訪問的),但屬性保持NULL,直到第二次使用。
這是否發生,因爲它沒有設置?我怎樣才能避免使用額外的線($this->MyVar;
)?
爲什麼要在getter中設置屬性? – BoltClock