0

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

?>
4

2 回答 2

1

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

所以是的,这是意料之中的,因为它一开始就不受命名空间的影响。

于 2013-08-18T08:37:06.590 回答
0

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

使用这个(没有\):

<?php
namespace Testing;

final class Test {
    private $properties = array(
        "test" => "testing",
        "weird_functionality" => "test"
    );
}
于 2013-08-18T08:37:16.753 回答