list

(PHP 3, PHP 4, PHP 5)

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

説明

void list ( mixed varname, mixed ... )

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

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

例 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 " ;

?>

例 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 )) {
    echo
" <tr>\n" .
          
"  <td><a href= \" info.php?id=$id \" >$name</a></td> \n " .
          
"  <td>$salary</td> \n " .
          
" </tr>\n" ;
}

?>

</table>

警告

list() は、最も右のパラメータから値を代入します。 プレーンな変数を使用している場合には、このことを気にする必要はありません。 しかし、添字配列を使用している場合には、配列の添字の順番が list() に書いたものと同じく左から右となることを通常は期待しますが、 そうはなりません。この配列の添字は逆の順番となります。

例 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() も参照ください。