[英]Concatenating __DIR__ constant with a string as an array value which is a class member in PHP
谁能告诉我为什么这不起作用? 这只是我在其他地方尝试做的一个粗略的例子。
$stuff = array(
'key' => __DIR__ . 'value'
);
但是,这会产生错误:
PHP Parse error: syntax error, unexpected '.', expecting ')' in /var/www/.../testing.php on line 6
此外,这有效:
$stuff = array(
'key' => "{__DIR__} value"
);
第一段代码不起作用,因为它不是一个常量表达式,因为你试图连接两个字符串。 初始类成员必须是常量。
从文档 :
[property]初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行求值。
您不能在属性初始化中使用运算符。 解决方法是使用构造函数:
public function __construct()
{
$this->stuff = array(
'key' => __DIR__ . 'value'
);
}
从PHP文档:
此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
在构造函数上设置$ stuff值
function __construct()
{
$this->$stuff = array(
'key' => __DIR__ . 'value'
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.