1

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

首先尝试将其与属性定义放在一起。不幸的是,括号中的属性定义是不允许的。

这失败了(在 中__construct()):

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

给出错误“未定义的变量'aip-aup'”。

这也是(在__set方法中):

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

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

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

这里有什么帮助吗?

财产必须是公开的,所以应该可行吗?

4

1 回答 1

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'];
于 2013-08-06T08:59:58.343 回答