Как создать динамическое свойство в классе?
Мне нужно создать свойство под названием "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'];