2013-08-18 50 views
0

我遇到了一个我无法用命名空间解释的奇怪问题。函数array()似乎不允许在名称空间中使用\array()进行全局引用。这是预期的功能还是PHP中的某种不一致?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" 
    ); 
} 

?> 

回答

1

array()不是一个函数,它基本上是原始语言(“语言构造”)。正如你所看到的,它甚至有它自己的解析器令牌T_ARRAY

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

0

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

使用此(不\):

<?php 
namespace Testing; 

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