-3

__construct でプロパティを設定するときに、魔法のメソッド __set が呼び出されますか?

class MyClass
{
    public function __construct()
    {
        $this->property = 'something';
    }
    public function __set($name,$value)
    {
        $this->{$name} = ($name == 'property')?'other value':$value;
    }

}
4

1 に答える 1

1

これは完全に合法です。マニュアルから:

__set() は、アクセスできないプロパティにデータを書き込むときに実行されます。

コンストラクタから実行しても問題ありません。

そう呼び出す:

$x = new MyClass();
var_dump($x);

結果は次のとおりです。

object(MyClass)#1 (1) { ["property"]=> string(11) "other value" }
于 2012-10-25T09:37:55.627 に答える