2

PHP 中的其他对象是使用new限定符来实例化的,例如,等等。在 PHP 中实例化新数组时new Date(),为什么不提供new限定符?Array()

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

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

4 回答 4

4

Array 是一种语言构造而不是类,因此您不能使用 new 来实例化 Array 对象。

于 2012-08-13T03:40:13.863 回答
2

因为array是语法,而不是类。与list,echo和其他一些相同。

于 2012-08-13T03:39:42.490 回答
2

除非您创建“Array”类,否则它将“爆炸”,因为 PHP 没有内置的 Array 类。

数组不是一个类,而是一个函数。

出于同样的原因,你不能这样做

$myvar = new print('hello');

那会很疯狂,不是吗?print(), 像array(), 是 PHP 内置的函数,而不是类。

于 2012-08-13T03:49:09.900 回答
1

数组在 php 中甚至在面向对象的方式被引入之前就已经存在

将其视为 C 语言数组,仍然可以在 C++ 中使用 :)

于 2012-08-13T03:42:28.127 回答