ホームページ > バックエンド開発 > PHPチュートリアル > PHP で複雑な式を使用して静的変数を適切に初期化するにはどうすればよいですか?

PHP で複雑な式を使用して静的変数を適切に初期化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-20 00:37:03
オリジナル
885 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート