PHP:引用命名空间中的全局函数


PHP: Referencing Global Functions in Namespace

我遇到了一个无法用名称空间解释的奇怪问题。函数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"
    );
}