【发布时间】:2018-02-24 03:09:44
【问题描述】:
我想知道为什么我的静态变量初始化不适用于以下声明:
function validate()
{
static $timezones = DateTimeZone::listIdentifiers(); // Error here
...
}
带有static ... 的行会产生错误:
PHP 致命错误:常量表达式包含无效操作
但是,如果我执行以下操作,它会按预期工作:
function validate()
{
static $timezones = null;
if(!isset($timezones))
{
$timezones = DateTimeZone::listIdentifiers();
}
...
}
所以我有办法解决这个问题,但我想知道为什么第一种方法失败了?
【问题讨论】:
-
请停止标签垃圾邮件。你的帖子不可能同时是 C++ 和 PHP,那绝对不是你发布的 C++ 代码。你不是新来的;你知道标签是如何工作的。停止随机添加它们。
-
错误信息中解释了为什么失败。
-
@KenWhite 啊...抱歉,这是一个建议的标签,因为我也做了很多 C++...感谢您的编辑。
标签: php compiler-errors php-7