首頁 >後端開發 >php教程 >如何在 PHP 中正確初始化靜態變數?

如何在 PHP 中正確初始化靜態變數?

Patricia Arquette
Patricia Arquette原創
2024-11-29 03:32:09451瀏覽

How Can I Properly Initialize Static Variables in PHP?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn