我遇到了一个无法用名称空间解释的奇怪问题。函数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"
);
}
?>
array()
不是一个函数,它基本上是一个语言原语("语言构造")。正如您所看到的,它甚至有自己的解析器标记T_ARRAY
。
是的,这是意料之中的事,因为它一开始就不受名称空间的影响。
array()
不是一个函数,它是一种语言构造,不能使用名称空间。
使用此(不带):
<?php
namespace Testing;
final class Test {
private $properties = array(
"test" => "testing",
"weird_functionality" => "test"
);
}