본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP list() 재확인 — 배열을 변수로 분해 완전 정리

by 왕진 2026. 6. 15.
반응형

 

 

Web Development · PHP list (재확인)

PHP list() 재확인 —
배열을 한 번에 여러 변수로 분해

["사과","귤","감"] → $f0="사과", $f1="귤", $f2="감"
시작 오늘 분석할 코드
<?php $data = array("사과", "귤", "감"); list($fruit0, $fruit1, $fruit2) = $data; // 위는 다음 세 줄과 동일 // $fruit0 = $data[0]; // $fruit1 = $data[1]; // $fruit2 = $data[2]; print $fruit0; print "<br>"; print $fruit1; print "<br>"; print $fruit2; print "<br>"; ?>
사과

32번 폴더의 return2 글에서 한 번 본 list의 다른 사용 예. 함수 호출 결과뿐 아니라 일반 배열에도 그대로 쓸 수 있다.

용어 용어 정리
list()배열을 여러 변수에 분해 할당
분해 할당한 자료구조를 여러 변수에 풀어 담는 것
대안 [ ]PHP 7.1+ 짧은 분해 문법
키 분해["k" => $v] 형식으로 연관 배열 처리
중간 건너뛰기list(, , $z) — 빈자리
중첩 분해list(list($a, $b), $c) — 2차원 배열
받는 변수 수배열 길이보다 많으면 null
실용성다중 반환·튜플 분해 등에 유용

1 list() 문법 — 두 가지
옛 방식 list (이 코드)
list($a, $b, $c) = $arr;
모든 PHP 버전 지원
짧은 방식 [ ] (PHP 7.1+)
[$a, $b, $c] = $arr;
짧고 자바스크립트와 비슷
두 문법은 동일하게 동작한다. PHP 7.1 이후엔 [ ]를 더 권장.

2 일반 대입과의 비교
// 같은 일을 하는 두 방식 // 방식 1 - list 사용 list($f0, $f1, $f2) = $data; // 방식 2 - 인덱스로 한 줄씩 $f0 = $data[0]; $f1 = $data[1]; $f2 = $data[2];

list가 한 줄이라 가독성·간결함에서 유리하다.


3 활용 — 좌표·튜플 형태 데이터
$point = [10, 20]; [$x, $y] = $point; // $x=10, $y=20 $rgb = [255, 100, 50]; [$r, $g, $b] = $rgb; // 색상 풀기 // 일부만 받기 [, , $b] = $rgb; // $b=50 만

 

반응형

 

4 키 분해 (PHP 7.1+)
$user = ['name' => '김철수', 'age' => 30]; ['name' => $name, 'age' => $age] = $user; // $name = "김철수", $age = 30

연관 배열에서도 깔끔히 분해할 수 있다. JS의 const {name, age} = user;와 비슷.


5 자주 하는 실수
실수 증상 해결
변수 개수가 배열보다 많음 모자라는 자리는 null 의도 확인, 또는 짧게 받기
연관 배열에 list만 사용 모두 null 키 분해 ["키" => $v] 사용
foreach에서 list 사용 가능? 가능 (2차원 배열일 때) foreach ($arr as [$a, $b])

핵심 한 줄 요약

list()배열을 여러 변수에 한 번에 분해 할당
짧은 문법[ $a, $b, $c ] = $arr (PHP 7.1+)
대등$a=$arr[0]; $b=$arr[1]; ... 한 줄
건너뛰기[ , , $c ] = $arr
키 분해["k" => $v] = $arr (연관 배열)
활용다중 반환, 좌표 풀기, foreach 분해
JS 비유const [a, b, c] = arr 와 동일 개념
반응형

댓글