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

时间:2013-08-18 08:18:41

标签: php namespaces

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

?>

2 个答案:

答案 0 :(得分:1)

array()不是函数,它基本上是一种语言原语(“语言构造”)。如您所见,它甚至还有自己的解析器令牌T_ARRAY

所以是的,这是预期的,因为它不受命名空间的影响。

答案 1 :(得分:0)

array()不是一个函数,它是一个语言结构,不能被命名空间。

使用此(不含\):

<?php
namespace Testing;

final class Test {
    private $properties = array(
        "test" => "testing",
        "weird_functionality" => "test"
    );
}