Symfony:在操作中将常量声明为类属性的问题

时间:2011-01-26 09:25:49

标签: php symfony-1.4

这是我的行动中的变量声明: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');时它工作正常。问题来自于在action类中的函数之外使用sfConfig :: get()。知道为什么这不起作用吗?谢谢。

2 个答案:

答案 0 :(得分:0)

如果您想在动作类的所有方法中使用$var,请尝试在动作类中使用preExecute方法:

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

然后,您将能够在动作类的所有方法中使用$this->var来获得所需的结果。初始化类成员应该使用常量值,例如“42”或“Foo” - 您不能使用函数调用的结果。

答案 1 :(得分:0)

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

  

此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。