Взгляните на этот код, пожалуйста:Функция буквальным в PHP класс
$array = array(
'action' => function() { echo "this works"; }
);
class Test {
public $array = array(
"action" => function() { echo "this doesn't"; }
);
}
Первая функция буквальное разбирает хорошо, но второй - один внутри класса - вызывает синтаксическую ошибку:
Parse error: syntax error, unexpected 'function' (T_FUNCTION)...
Может ли кто-нибудь объяснить это мне? Это ошибка?
EDIT: Это последняя PHP: 5.6.6
Какая версия PHP это именно так? –
Объявления свойств могут быть только константами/литералами. Анонимные функции - это выражения. – mario
Используйте конструктор, и он будет работать, вы не можете назначить переменные класса с не-литералами при создании экземпляра. Они должны быть установлены в конструкторе. – naththedeveloper