ホームページ  >  記事  >  バックエンド開発  >  PHP で静的変数を適切に初期化するにはどうすればよいですか?

PHP で静的変数を適切に初期化するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-25 05:04:12254ブラウズ

How to Properly Initialize Static Variables in PHP?

PHP での静的変数の初期化: ガイド

問題:

PHP で静的変数を初期化中にエラーが発生しましたprivate static $dates = array(...); という構文を使用したコード。具体的には、予期しない括弧に関連する「構文エラー」が発生します。

回答:

PHP では、複雑な式を静的変数初期化子で直接使用できません。この制限を回避する 2 つの方法を次に示します。

方法 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 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 で静的変数を適切に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。