我有这个代码:
protected $val = Zend_Registry::get('values');
每当我输入这段代码时,我都会得到:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...
为什么会这样?
我有这个代码:
protected $val = Zend_Registry::get('values');
每当我输入这段代码时,我都会得到:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...
为什么会这样?
您不能使用函数调用或其他动态表达式来初始化类属性。它只能是常数或原子值。如果您需要使用函数调用对其进行初始化,则必须在构造函数中执行此操作。
protected $val = NULL;
public function __construct() {
$this->val = Zend_Registry::get('values');
}
这个声明可能包括一个初始化,但这个初始化必须是一个常量值——也就是说,它必须能够在编译时被评估,并且不能依赖于运行时信息才能被评估。
您不能将函数的返回值用作类变量的初始值。
但是,您可以在类的构造函数中设置它。
class Myclass{
protected $val;
public function __construct(){
$this->val = Zend_Registry::get('values');
}
}
因为这看起来像一个类变量,你不能将数据分配给这样的类变量。
见这里http://www.php.net/manual/en/language.oop5.properties.php
你可以这样做。
class something {
protected $_val;
public function __construct()
{
$this->_val = Zend_Registry::get('values');
}
}