我需要在类中创建一个名为“aip-aup”的属性,但我无法使其工作。
首先尝试使用属性定义。不幸的是,不允许使用括号内的属性定义。
此失败(在__construct()
中):
$this->${'aip-aup'} = array();
给出错误“Undefined variable'aip-aup'”。
这也是(在__set
方法中):
$this->${'aip-aup'}[$property] = $value;
还尝试创建自定义帮助器方法,但绝对不做任何事情:
$this->createProperty('aip-aup', array());
这里有任何帮助吗?
该物业必须公开,所以应该可行吗?
答案 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'];