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