Я пытаюсь настроить класс PHP:
class SomeClass {
private $tags = array(
'gen1' => array('some string', 1),
'gen2' => array('some string', 2),
'gen3' => array('some string', 3),
'gen4' => array('some string', 4),
'gen5' => array('some string', 5),
);
private $otherVar = $tags['gen1'][0];
}
Но это выдает ошибку:
Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданные теги $
Переключение на обычное …
private $otherVar = $this->tags['gen1'][0];
возвращает ту же ошибку:
Ошибка синтаксического разбора PHP: синтаксическая ошибка, неожиданное «$ this»
Но доступ к переменной внутри функции это нормально:
private $otherVar;
public function someFunct() {
$this->otherVar = $this->tags['gen1'][0];
}
Как я могу использовать ранее определенную переменную класса для определения и инициализации текущей, без дополнительной функции?
Ближайший способ сделать то, что вы хотите, это поместить назначение в конструктор. Например:
class SomeClass {
private $tags = array(
'gen1' => array('some string', 1),
'gen2' => array('some string', 2),
'gen3' => array('some string', 3),
'gen4' => array('some string', 4),
'gen5' => array('some string', 5),
);
private $otherVar;
function __construct() {
$this->otherVar = $this->tags['gen1'][0];
}
function getOtherVar() {
return $this->otherVar;
}
}
$sc = new SomeClass();
echo $s->getOtherVar(); // echoes some string
Других решений пока нет …