2013-08-18 78 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" 
    ); 
}