我们可以在为类属性赋值时使用常量来代替属性名。

时间:2010-07-15 13:29:39

标签: php properties

假设,我有课,

define('property', 'test');

class myClass
{
public $test;
}

$obj=new myClass;

我可以这样使用吗,

$obj->property="value";

有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:3)

是:

$obj->{property}="value";

答案 1 :(得分:1)

执行此操作的最佳方法是创建类似stdClass,例如:

MyClass
{
    public function __set($key,$value)
    {
        $this->{$key} = $value;
    }
}

你可以使用

$Storage = new MyClass;

$Storage->SomeNewVar = "Some New Val";

echo $Storage->SomeNewVar;

答案 2 :(得分:0)

是的,您可以按照@Artefacto的建议,但确保在确定属性值不会改变时使用常量!!