2016-06-23 60 views
-1

我的當前主機只有PHP 5.4可用,並且我的代碼中總是遇到類常量錯誤。顯然,不允許定義數組常量。我將常量改爲靜態變量以使其工作。現在我得到這個語法錯誤:帶常量的字符串連接

syntax error, unexpected '.', expecting ']' 

我嘗試定義由串聯的常量組成的字符串。

public static $arr = [KEY_ONE => "string " . MyClass::CONSTANT . " string"] 

這是可能的嗎?或者現在所有的常量都必須是靜態變量嗎?

+0

也許是一個操作符偏好的問題,你是否嘗試在連接的周圍放置圓括號?就像'[KEY_ONE =>(「string」。MyClass :: CONSTANT。「string」)]'。 – syck

回答

0

如果你正在嘗試陣列像這樣:

public static $arr = array("KEY_ONE" => "string " . MyClass::CONSTANT . " string"); 
+0

定義屬性時這不起作用。 – jeroen

2

在變量聲明中你不能做的操作。無論是連接還是數學運算。

你可以在構造方法中做到這一點;

public static $arr = []; 

public function __construct(){ 
    self::$arr = [KEY_ONE => "string " . MyClass::CONSTANT . " string"]; 
} 
+1

或者某種'init()'方法,如果你不想實例化一個對象的話。 – jeroen