我有這樣的代碼:
protected $val = Zend_Registry::get('values');
解析在PHP(Zend框架)錯誤
每當我把這段代碼我得到:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...
爲什麼會發生?
我有這樣的代碼:
protected $val = Zend_Registry::get('values');
解析在PHP(Zend框架)錯誤
每當我把這段代碼我得到:
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');
}
}
謝謝,我差點忘了。 – cprogcr
因爲這看起來像一個類變量,你不能將數據分配給類變量。
看到這裏http://www.php.net/manual/en/language.oop5.properties.php
你可以不喜歡這樣。
class something {
protected $_val;
public function __construct()
{
$this->_val = Zend_Registry::get('values');
}
}
ahhh我差點忘了。謝謝 – cprogcr