問題:
在PHP 中初始化靜態變數時遇到錯誤使用語法private static $dates = array(...); 的程式碼。具體來說,您會收到與意外括號相關的「語法錯誤」。
答案:
在 PHP 中,不能在靜態變數初始值設定項中直接使用複雜表達式。這裡有兩種方法可以解決這個限制:
方法一:使用類別初始化程式碼
定義類別後,加入以下程式碼:
class Foo { static $bar; } Foo::$bar = array(...);
方法2:使用靜態初始化方法
定義靜態初始化方法並手動呼叫:
class Foo { private static $bar; static function init() { self::$bar = array(...); } } Foo::init();
PHP 5.6 :
PHP 5.6 :
abstract class Foo{ private static function bar(){ static $bar = null; if ($bar == null) bar = array(...); return $bar; } /* use where necessary */ self::bar(); }PHP 5.6 :在PHP 5.6及更高版本中,您可以在靜態變數初始值設定項中使用有限表達式。然而,對於複雜的表達式,上述方法可能仍然是必要的。對於抽象類,可以使用以下語法:
以上是如何在 PHP 中正確初始化靜態變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!