[英]Can't call function in array
我試圖像這樣調用數組內的函數:
protected $settings = array(
'prefix' => $this->getPrefix(),
);
表達式不允許作為默認值的字段
getPrefix()
public function getPrefix()
{
return "hello world";
}
我不能這樣做?
根據受protected
關鍵字判斷,您正在嘗試設置對象屬性。 根據PHP 手冊 :
它們通過使用public,protected或private之一,然后是普通變量聲明來定義。 此聲明可能包括初始化,但此初始化必須是常量值 - 也就是說,它必須能夠在編譯時進行評估,並且必須不依賴於運行時信息才能進行評估。
為了設置你的值,把它放到構造函數中:
class Settings
{
protected $settings;
public function __constructor() {
$this->settings = array(
'prefix' => $this->getPrefix(),
);
}
public function getPrefix() {
return "Hello, World!";
}
}
PHP編譯時必須定義您的對象屬性。 但是,您可以簡單地初始化構造函數中的值。
class MyClass
{
protected $settings = array();
public function __construct()
{
$this->settings['prefix'] => $this->getPrefix()
}
public function getPrefix()
{
return "hello world";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.