繁体   English   中英

PHP访问成员变量使用常量

[英]PHP access member variable using constant

这是一些代码的非常简化的示例,可能已被过度编码,但是我想使用类常量访问类成员变量,并且想知道是否有比下面的$ 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);

这也适用:

$foo->{Foo::BAR};

或实现ArrayAccess ,那么您可以:

$foo[Foo::BAR]

但是为什么不以$foo->bar访问它呢? 您是否打算对该常数进行很多更改,或者我在这里缺少什么?

我认为代码看起来不错,但是您可以使用构造函数来初始化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];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM