list

(PHP 3, PHP 4, PHP 5 )

list --  配列と同様の形式で、複数の変数への代入を行います

説明

void list ( mixed ...)

array() と同様に、この関数は実際には関数 ではなく言語の構成要素です。list()は、 単一の操作で一連の変数に値を割り当てるために使われます。

注意: list()は数値添字の配列のみを生成します。 添字はゼロから始まります。

例 1. list()の例

<?php

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

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

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

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

?>

例 2. list()の使用法の例

<table>
<tr>
  <th>社員氏名</th>
  <th>給与</th>
</tr>

<?php

$result
= mysql_query ("SELECT id, name, salary FROM employees",$conn);
while (list (
$id, $name, $salary) = mysql_fetch_row ($result)) {
    print (
" <tr>\n".
           
"  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
           
"  <td>$salary</td>\n".
           
" </tr>\n");
}

?>

</table>

警告

list() assigns the values starting with the right-most parameter. If you are using plain variables, you don't have to worry about this. But if you are using arrays with indices you usually expect the order of the indices in the array the same you wrote in the list() from left to right; which it isn't. It's assigned in the reverse order.

例 3. 配列の添字を使用した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"
}

each(), array(), extract()も参照してください。