我有这样的代码:
protected $val = Zend_Registry::get('values');
每当我把这段代码放到下面的地方:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...
为什么会发生这种情况?
发布于 2012-04-30 15:20:21
不能使用函数调用或其他动态表达式来初始化类属性。它只能是常量或原子值。如果需要使用函数调用对其进行初始化,则必须在构造函数中执行此操作。
protected $val = NULL;
public function __construct() {
$this->val = Zend_Registry::get('values');
}
此声明可以包括初始化,但此初始化必须是常量值--也就是说,它必须能够在编译时进行计算,并且不能依赖于运行时信息进行计算。
发布于 2012-04-30 15:20:36
不能使用函数的返回值作为类变量的初始值。
但是,您可以在类的构造函数中设置它。
class Myclass{
protected $val;
public function __construct(){
$this->val = Zend_Registry::get('values');
}
}
发布于 2012-04-30 15:21:13
因为它看起来像一个类变量,而你不能像那样将数据赋给一个类变量。
查看此处http://www.php.net/manual/en/language.oop5.properties.php
你可以这样做。
class something {
protected $_val;
public function __construct()
{
$this->_val = Zend_Registry::get('values');
}
}
https://stackoverflow.com/questions/10386077
复制相似问题