Установить переменную класса из другой переменной класса в том же классе?

Я пытаюсь настроить класс 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];
}

Как я могу использовать ранее определенную переменную класса для определения и инициализации текущей, без дополнительной функции?

1

Решение

Ближайший способ сделать то, что вы хотите, это поместить назначение в конструктор. Например:

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
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]