1

オーバーロードに関する PHP ドキュメントからの引用:

isset() 以外の言語構造では、オーバーロードされたプロパティを使用することはできません。つまり、オーバーロードされたプロパティで empty() が呼び出された場合、オーバーロードされたメソッドは呼び出されません。

この制限を回避するには、オーバーロードされたプロパティをスコープ内のローカル変数にコピーしてから、empty() に渡す必要があります。

これは本当に私が次のようなものを使用できないことを意味しますか

if (empty($this->foobar))

クラスで$this->foobarは、魔法のプロパティはどこにあり、 によって解決され__get()ますか、ここで何か誤解していますか?

4

1 に答える 1

3

メソッドをオーバーライドし__issetても機能します。empty() or isset()ドキュメントがそのように書かれている理由は、メソッド呼び出しの結果を呼び出すことができないためです。

于 2012-08-30T23:01:21.457 に答える