在 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中文网其他相关文章!