배열의 속기 : {} 또는 []와 같은 리터럴 구문이 있습니까?


84

PHP에서 배열 표기법의 약어는 무엇입니까?

사용하려고했습니다 (작동하지 않음) :

$list = {};

PHP의 다른 약어에 대한 정보에 대한 링크를 제공하면 완벽 할 것입니다.


특별한 경우 (예 : str_split)에서 배열을 만드는 데 사용할 수있는 많은 함수가 있지만, 그게 당신이 말하는 것이 아니라고 생각합니다.
Matthew

PHP는 그렇지 않습니다. 그러나 phpreboot와 pihipi는 실험적인 새로운 구문을 제공합니다.
mario

답변:


135

업데이트 :
PHP 5.4.0 부터 배열 선언을위한 단축 구문 이 도입되었습니다.

$list = [];

이전 답변 :

없습니다. 만 $list = array();하지만 당신은 단지 요소를 추가 할 수 있습니다.

<?php
$list[] = 1;
$list['myKey'] = 2;
$list[42] = 3;

PHP에 관한 한 완벽하게 괜찮습니다. 정의되지 않은 변수에 대해서는 E_NOTICE 조차 얻지 못할 것 입니다.

초기화되지 않은 변수로 작업하는 경우 E_NOTICE 수준 오류가 발생하지만 초기화되지 않은 배열에 요소를 추가하는 경우에는 발생하지 않습니다.

속기 방법은 여기 저기 흩어져 있습니다. 그것들을 찾고 싶다면 매뉴얼을 읽으 십시오 .

즐거움을위한 몇 가지 예 :

  1. $arr[]대한 나타내는 표현 array_push.
  2. foreach구조
  3. echo $string1, $string2, $string3;
  4. 배열 연결 +
  5. 존재 elseif
  6. 문자열에 변수 임베딩, $name = 'Jack'; echo "Hello $name";

6
PHP는 그렇게 교활합니다.
GWW

1
저는 몇 년 동안 전문적으로 PHP를 사용해 왔는데, 동료에게 무슨 $results[] = $row;뜻 인지 물어봐야했습니다 .
Josue Alexander Ibarra

4
$ results [] = $ row; 많은 ($ 행 $ 결과) 빠른 array_push 것보다 실제로
Daniklad

이 모든 시간이 $var = [];지나고 PHP7이 도입 되었다고 생각 했습니다. 5.4까지 거슬러 올라간 줄은 몰랐습니다!
IncredibleHat

46

예, 존재합니다 !!

다른 스택 오버플로 질문에서 발췌 :

배열에 대한 축약 된 구문이 다시 논의되고 수용되었으며 이제 PHP 5.4와 함께 출시 될 예정입니다.

용법:

$list = [];

참조 : PHP 5.4 약식 배열


이 실수를 저지른 사람이라면 키와 값 사이 =>대신 사용 :하세요!
clabe45

30

다음과 같이 [] 안에 내용을 정의 할 수도 있습니다.

  $array = ['vaue1', 'value2', 'key3'=>['value3', 'value4']];

이것은 php5.4 이상에서만 작동합니다.


1
나는 5.4 이상을 쓰는 것이 더 낫다고 생각합니다 (5.6에서는 작동합니다). 참고로 그 클래스의 상수 배열을 선언하는 경우에만 작동 방법이다 (예 : CONST X = [ "A", "B"])에 CONST X = 배열 (...) 일이 없기 때문에
Pierpaolo CIRA


4

아니요, 커뮤니티에서 제안 및 거부 했으므로 현재로서는 배열 구문 만 array () 입니다.


3

PHP에서 배열을 정의하는 유일한 방법은 array()언어 구조를 사용하는 것입니다. PHP에는 다른 언어처럼 배열 리터럴에 대한 속기가 없습니다.


3

다음과 같이 배열을 선언 할 수 있습니다.

$myArray1 = array(num1, num2, num3);
$myArray2 = array('string1', 'string2', 'string3');
$myArray3 = array( 'stringkey1'=>'stringvalue1', 'stringkey2'=>'stringvalue2');
$myArray4 = array( 'stringkey1'=>numValue1, 'stringkey2'=>numValue2);
$myArray5 = array( numkey1=>'stringvalue1', numkey2=>'stringvalue2');
$myArray6 = array( numkey1=>numValue1, numkey2=>numValue2);

필요한만큼 임베디드 어레이를 가질 수 있습니다.


이것은 정의되지 않은 상수에 대한 알림을 생성합니다.
Popnoodles 2014-06-04

2

다음과 같이 문자열을 배열로 분해합니다.

$array = explode(",","0,1,2,3,4,5,6,7,8,9,10");
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.