基礎

PHPの配列分割代入|list()で複数変数に一括代入

list()関数(または短縮構文 [])を使うと、配列の要素を複数の変数に一度に代入できます。これを分割代入(destructuring)と呼びます。

基本的な使い方

PHP
<?php
$data = ["太郎", 25, "東京"];

// list()で分割代入
list($name, $age, $city) = $data;
echo "{$name}、{$age}歳、{$city}在住";
echo "<br>";

// 短縮構文(PHP 7.1+)
[$name2, $age2, $city2] = $data;
echo "{$name2}、{$age2}歳、{$city2}在住";
?>
実行結果
太郎、25歳、東京在住
太郎、25歳、東京在住

要素のスキップ

PHP
<?php
$data = ["太郎", 25, "東京", "taro@example.com"];

// 不要な要素はスキップできる
[, $age, , $email] = $data;
echo "年齢: {$age}、メール: {$email}";
?>
実行結果
年齢: 25、メール: taro@example.com

連想配列の分割代入

PHP(PHP 7.1+)
<?php
$user = ["name" => "太郎", "age" => 25, "city" => "東京"];

// キーを指定して分割代入
["name" => $name, "age" => $age] = $user;
echo "{$name}は{$age}歳";
?>
実用的な使い方

関数の戻り値を分割代入で受け取るパターンがよく使われます。例: [$width, $height] = getimagesize('photo.jpg');

まとめ

  • list()または[]で配列の要素を複数変数に一括代入
  • カンマで不要な要素をスキップできる
  • PHP 7.1以降は連想配列のキー指定による分割代入も可能