배열 list

(PHP 4, PHP 5, PHP 7, PHP 8)

list — 변수를 배열인 것처럼 할당


설명

list(mixed $var, mixed ...$vars = ?): array

array()와 마찬가지로 이것은 실제로 함수가 아니라 언어 구조입니다. list()는 한 번의 작업으로 변수 목록을 할당하는 데 사용됩니다. 문자열은 압축을 풀 수 없으며 list() 표현식은 완전히 비어 있을 수 없습니다.

메모: PHP 7.1.0 이전에는 list()가 숫자 배열에서만 작동했으며 숫자 인덱스가 0에서 시작한다고 가정합니다.


매개변수

var
변수.
vars
추가 변수.

반환 값

할당된 배열을 반환합니다.


변경 로그

버전 설명
7.3.0 배열 구조화에서 참조 할당에 대한 지원이 추가되었습니다.
7.1.0 이제 list()에서 키를 지정할 수 있습니다. 이를 통해 정수가 아니거나 순차 키가 아닌 배열을 구조화할 수 있습니다.

Examples

예제 #1 list() 예제

                  
<?php
$info = array('coffee', 'brown', 'caffeine');

// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.\n";

// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!\n";

// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>
                  
                

예제 #2 list() 사용 예

                  
<?php
$result = $pdo->query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
    echo "id: $id, name: $name\n";
}
?>
                  
                

예제 #3 중첩 list() 사용

                  
<?php
list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);
?>
                  
                
int(1)
int(2)
int(3)
                

예제 #4 list() 및 인덱스 정의 순서

list()가 사용할 배열의 인덱스가 정의되는 순서는 관련이 없습니다.

                  
<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
                  
                

다음 출력을 제공합니다(list() 구문에서 작성된 순서와 비교한 요소의 순서에 유의).

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"
                

예제 #5 키가 있는 list()

PHP 7.1.0부터 list()는 임의의 표현식으로 제공될 수 있는 명시적 키도 포함할 수 있습니다. 정수 및 문자열 키의 혼합이 허용됩니다. 그러나 키가 있거나 없는 요소는 혼합할 수 없습니다.

                  
<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
    echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";
                  
                

위의 예는 다음을 출력합니다.

id: 1, name: Tom
id: 2, name: Fred

2, 4
                

기타

  • each() - 배열에서 현재 키와 값 쌍을 반환하고 배열 커서를 앞으로 이동
  • array() - 배열 생성
  • extract() - 배열에서 현재 기호 테이블로 변수 가져오기