这是我的行动中的变量声明: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()。知道为什么这不起作用吗?谢谢。
答案 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
此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。