2

これはおそらくオーバーコードされているいくつかのコードの非常に単純化された例ですが、クラス定数を使用してクラス メンバー変数にアクセスしたいのですが、以下の $foo->__get を使用するよりも簡単な構文があるかどうか疑問に思っていましたか?

class Foo
{
    const BAR = 'bar';

    private $props = array( self::BAR => 'wee' );

    public function __get($name)
    {
        return $this->props[$name];
    }
}

$foo = new Foo();
echo $foo->__get(Foo::BAR);
4

2 に答える 2

1

コードは見栄えが良いと思いますが、コンストラクターを使用してprops配列を初期化できます。

class Foo
{
    const BAR = 'bar';

    private $props;

    public function __construct() {
        $this->props = array( self::BAR => 'wee' );
    }

    public function __get($name)
    {
        return $this->props[$name];
    }
}
于 2013-05-10T23:30:46.263 に答える