Как создать динамическое свойство в классе?

Мне нужно создать свойство под названием "aip-aup" в классе, но я не могу заставить его работать.

Сначала попытался смириться с определениями свойств. К сожалению, определения свойств в квадратных скобках не допускаются.

Это не удается (в __construct()):

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

Выдает ошибку "Неопределенная переменная 'aip-aup'".

Это также (в __set метод):

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

Также попытался создать собственный вспомогательный метод, но абсолютно ничего не делает:

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

Любая помощь здесь?

Собственность должна быть публичной, поэтому должна быть выполнимой?

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'];
Другие вопросы по тегам