2012-08-13 38 views
2

PHP中的其他對象通過使用new限定符(如new Date()等)進行實例化。當在PHP中實例化新數組時,你如何不提供new限定符和Array()PHP中爲什麼'Array()'而不是'new Array()'?

$array = new Array(); //blows up 
$array = Array();  //works as intended 

$reflect = new ReflectionClass($this); //works as intended 
$reflect = ReflectionClass($this);  //blows up 
+2

沒有'Array'類。 – alex 2012-08-13 03:38:42

+1

數組可以使用'Array()'(使用大寫)創建嗎?該手冊說'array()'(使用小寫) – Abdulaziz 2012-08-13 03:40:54

+1

@AzizAG PHP對此不區分大小寫。 – 2012-08-13 03:45:15

回答

4

數組是一種語言結構而不是類,所以你不能使用new來實例化一個數組對象。

2

因爲array是語法,而不是類。與list,echo等一樣。

1

陣列在PHP之前的它,它

覺得作爲C語言陣列中引入甚至是面向對象的方法,其仍然可以在C++中使用:)

2

除非你創建的「數組」類,它會'爆炸',因爲PHP沒有內置的Array類。數組不是一個類,而是一個函數。

出於同樣的原因,你不能這樣做

$myvar = new print('hello'); 

這將是瘋狂的,不是嗎? print(),就像array()一樣,是一個內置於PHP的函數,不是類。

+0

我的面向對象的大腦不會認爲'array()'是一個函數 – styler1972 2012-08-13 03:53:41

相關問題