如何在类中创建动态属性?

时间:2013-08-06 08:42:56

标签: php oop dynamic-properties

我需要在类中创建一个名为“aip-aup”的属性,但我无法使其工作。

首先尝试使用属性定义。不幸的是,不允许使用括号内的属性定义。

此失败(在__construct()中):

$this->${'aip-aup'} = array();

给出错误“Undefined variable'aip-aup'”。

这也是(在__set方法中):

$this->${'aip-aup'}[$property] = $value;

还尝试创建自定义帮助器方法,但绝对不做任何事情:

$this->createProperty('aip-aup', array());

这里有任何帮助吗?

该物业必须公开,所以应该可行吗?

1 个答案:

答案 0 :(得分:1)

如果你需要做这样的事情,那么你做错了什么,改变你的想法是明智的,而不是试图破解PHP。

但如果必须,你可以试试这个:

class Test {
    public $variable = array('foo'=>'bar');

public function __get($name){
    if ($name == 'aip-aup'){
        return $this->variable;
        }
    }
}   

$test = new Test();
$func = 'aip-aup';
$yourArray = $test->$func;
echo $yourArray['foo'];