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設定されていないためアクセスできないため)、プロパティは2回目の使用までNULLのままです。

まったく設定されていないのでしょうか?余分な行()の使用を避けるにはどうすればよい$this->MyVar;ですか?

4

1 に答える 1

6

__get()値を返す必要があります。次のように変更します。

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