首頁 > 後端開發 > php教程 > 如何在 PHP 中使用複雜表達式正確初始化靜態變數?

如何在 PHP 中使用複雜表達式正確初始化靜態變數?

Linda Hamilton
發布: 2024-11-20 00:37:03
原創
857 人瀏覽過

How Can I Properly Initialize Static Variables with Complex Expressions in PHP?

PHP 中靜態變數的初始化

PHP 在初始化靜態變數時遇到了挑戰,因為它無法在初始化器中計算非平凡的表達式。考慮以下程式碼:

private static $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),  
);
登入後複製

此程式碼會觸發解析錯誤,因為PHP 需要在賦值運算子後面有一個“)”,如以下錯誤訊息所示:

Parse error: syntax error, unexpected '(', expecting ')' in /home/user/Sites/site/registration/inc/registration.class.inc on line 19
登入後複製

To為了規避這個限制,我們可以採用替代方法:

1。延遲初始化

定義類別後,我們可以使用單獨的程式碼區塊明確初始化靜態變數:

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 中使用複雜表達式正確初始化靜態變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板