gpt4 book ai didi

php - “PHP Fatal error: Constant expression contains invalid operations”,何时初始化静态内联?

转载 作者:行者123 更新时间:2023-12-02 10:51:19 39 4
gpt4 key购买 nike

我想知道为什么我的静态变量初始化不适用于以下声明:

function validate()
{
static $timezones = DateTimeZone::listIdentifiers(); // Error here

...
}

带有 static ...的行生成错误:

PHP Fatal error: Constant expression contains invalid operations



但是,如果执行以下操作,它将按预期工作:
function validate()
{
static $timezones = null;
if(!isset($timezones))
{
$timezones = DateTimeZone::listIdentifiers();
}
...
}

所以我有办法解决这个问题,但是我想知道为什么第一种方法失败了?

最佳答案

基于php文档;您不能使用另一个非常量表达式或变量来初始化静态变量。

这意味着如果要为静态变量分配一个值,则该值应该是整数,字符串等。

您在此处所做的操作违反了PHP中的静态单词规则,您正在为 $ timezones 变量分配动态值

static $timezones = DateTimeZone::listIdentifiers(); // Error here

检查详细信息。

http://php.net/manual/en/language.variables.scope.php#language.variables.scope.static

关于php - “PHP Fatal error: Constant expression contains invalid operations”,何时初始化静态内联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230858/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com