将__DIR__常量与字符串连接为数组值,该值是PHP中的类成员

aca*_*rns 9 php arrays string class constants

谁能告诉我为什么这不起作用?这只是我在其他地方尝试做的一个粗略的例子.

$stuff = array(
    'key' => __DIR__ . 'value'
);
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误:

PHP Parse error:  syntax error, unexpected '.', expecting ')' in /var/www/.../testing.php on line 6
Run Code Online (Sandbox Code Playgroud)

此外,这有效:

$stuff = array(
    'key' => "{__DIR__} value"
);
Run Code Online (Sandbox Code Playgroud)

Tim*_*per 7

第一段代码不起作用,因为它不是一个常量表达式,因为你试图连接两个字符串.初始类成员必须是常量.

文档:

[property]初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行求值.