ホームページ >バックエンド開発 >PHPチュートリアル >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 サイトの他の関連記事を参照してください。