我遇到了一个奇怪的问题,我无法解释名称空间。函数array()
似乎不允许在命名空间中使用\array()
进行全局引用。这是PHP的预期功能还是某种不一致?
返回的错误是:
PHP Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING in php shell code on line 2
以下代码复制了显示的错误:
<?php
namespace Testing;
final class Test {
private $properties = \array(
"test" => "testing",
"weird_functionality" => "test"
);
}
?>
答案 0 :(得分:1)
array()
不是函数,它基本上是一种语言原语(“语言构造”)。如您所见,它甚至还有自己的解析器令牌T_ARRAY
。
所以是的,这是预期的,因为它不受命名空间的影响。
答案 1 :(得分:0)
array()
不是一个函数,它是一个语言结构,不能被命名空间。
使用此(不含\
):
<?php
namespace Testing;
final class Test {
private $properties = array(
"test" => "testing",
"weird_functionality" => "test"
);
}