(PHP 4, PHP 5)
list — 配列と同様の形式で、複数の変数への代入を行う
array() と同様に、 この関数は実際には関数ではなく言語構造です。 list() は、 単一の操作で一連の変数に値を代入するために使われます。
var1
変数。
代入した配列を返します。
例1 list() の例
<?php
$info = array('コーヒー', '茶色', 'カフェイン');
// すべての変数の取得
list($drink, $color, $power) = $info;
echo "$drink の色は $color で、$power が含まれています。\n";
// 一部の変数の取得
list($drink, , $power) = $info;
echo "$drink には $power が含まれています。\n";
// 三番目のみの取得
list( , , $power) = $info;
echo "$power 欲しい!\n";
// list() は文字列では動作しません
list($bar) = "abcde";
var_dump($bar); // NULL
?>
例2 list() の使用法の例
<table>
<tr>
<th>社員氏名</th>
<th>給与</th>
</tr>
<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
" <td>$salary</td>\n" .
" </tr>\n";
}
?>
</table>
例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() の例
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
次のような出力になります(list() の文法に書かれた 順番と、要素の順番の違いに注意):
array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }
list()は、最も右のパラメータから値を代入します。 プレーンな変数を使用している場合には、このことを気にする必要はありません。 しかし、添字配列を使用している場合には、配列の添字の順番が list() に書いたものと同じく左から右となることを通常は期待しますが、 そうはなりません。この配列の添字は逆の順番となります。
list() を実行して配列を変更 (list($a, $b) = $b など) した場合の挙動は未定義です。
注意:
list() は数値添字の配列のみを生成します。 添字は 0 から始まります。