Symfony: проблема с объявлением константы как свойства класса внутри действия - PullRequest
0 голосов
/ 26 января 2011

Это объявление переменной внутри моего действия: public $var = sfConfig::get('constant_name');

Возвращает PHP-ошибку: Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\wamp\www\project\app\module\actions\actions.class.php on line 13

Когда я ставлю $var = sfConfig::get('constant_name');, все работает нормально. Проблема возникает из-за использования sfConfig :: get () вне функции внутри класса действия. Есть идеи, почему это не работает? Благодарю.

Ответы [ 2 ]

0 голосов
/ 26 января 2011

http://www.php.net/manual/en/language.oop5.properties.php

Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки.

0 голосов
/ 26 января 2011

Если вы хотите, чтобы $var был доступен во всех методах вашего класса действий, попробуйте использовать метод preExecute в вашем классе действий:

public function preExecute()
{
  $this->var = sfConfig::get("constant_name");
}

Тогда вы сможете использовать $this->var во всех методах вашего класса действий, чтобы получить желаемый результат. Инициализация члена класса должна выполняться с постоянным значением, например, «42» или «Foo» - для этого нельзя использовать результат вызова функции.

...