在PHP 中初始化靜態變數
初始化靜態變數時,您可能會遇到類似於給定程式碼片段中範例的語法錯誤。這是因為 PHP 無法解析變數初始值設定項中的複雜表達式。
替代初始化方法
要解決此問題,請考慮使用以下替代方法:
class Registration { static $dates; } Registration::$dates = array( 'start' => mktime(0, 0, 0, 7, 30, 2009), 'end' => mktime(0, 0, 0, 8, 2, 2009), 'close' => mktime(23, 59, 59, 7, 20, 2009), 'early' => mktime(0, 0, 0, 3, 19, 2009), );
class Registration { private static $dates; static function init() { self::$dates = array( 'start' => mktime(0, 0, 0, 7, 30, 2009), 'end' => mktime(0, 0, 0, 8, 2, 2009), 'close' => mktime(23, 59, 59, 7, 20, 2009), 'early' => mktime(0, 0, 0, 3, 19, 2009), ); } // Call the init function to initialize the variable public function __construct() { static::init(); } }
PHP 5.6支援
PHP 5.6 引入了靜態變數初始值設定項中的非平凡表達式的有限支援。不過,為了清晰起見以及與早期版本的 PHP 相容,建議使用上述方法。
以上是如何在 PHP 中正確初始化靜態變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!