2012-08-13 1 views
2

PHP의 다른 객체는 new Date() 등과 같은 new 한정자를 사용하여 인스턴스화됩니다. new qualfier를 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

+1

'Array()'(대문자 사용)를 사용하여 배열을 생성 할 수 있습니까? 매뉴얼에'array()'라고 쓰여있다. (소문자 사용) – Abdulaziz

+1

@AzizAG PHP는 대소 문자를 구별하지 않는다. –

답변

4

배열은 클래스가 아닌 언어 구조이므로 new를 사용하여 Array 객체를 인스턴스화 할 수 없습니다.

2

array은 클래스가 아니기 때문에 구문입니다. list, echo 및 기타와 동일합니다.

1

배열은 여전히 ​​C++에서 사용할 수 있습니다 : C 언어의 배열과 그것의 그것

생각해 도입에도 객체 지향 방법 전에 PHP이었다

2

는 "배열"클래스를 생성하지 않는 한, PHP에는 내장 Array 클래스가 없으므로 '폭발'합니다.

배열은 클래스가 아니라 오히려 함수입니다.

같은 이유로 당신은

$myvar = new print('hello'); 

없이, 미친 것이라고 할 수 없다? print()array()처럼 클래스가 아닌 PHP에 내장 된 함수입니다.

+0

내 객체 지향 두뇌는'array()'가 함수라고 생각하지 않을 것이다. – styler1972

관련 문제