2

PHPの他のオブジェクトは、などのnew修飾子を使用してインスタンス化されます。PHPで新しい配列をインスタンス化するときに、なぜ修飾子を指定new Date()しないのですか?newArray()

$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 に答える