list
(PHP 4, PHP 5)
list — 把数组中的值赋给一些变量
说明
像 array() 一样,这不是真正的函数,而是语言结构。 list() 用一步操作给一组变量进行赋值。
参数
varname
-
一个变量。
返回值
返回指定的数组。
范例
Example #1 list() 例子
1 <?php 2 3 $info = array( 'coffee' , 'brown' , 'caffeine' ); 4 5 // 列出所有变量 6 list( $drink , $color , $power ) = $info ; 7 echo " $drink is $color and $power makes it special. " ; 8 9 // 列出他们的其中一个 10 list( $drink , , $power ) = $info ; 11 echo " $drink has $power . " ; 12 13 // 或者让我们跳到仅第三个 14 list( , , $power ) = $info ; 15 echo "I need $power ! " ; 16 17 // list() 不能对字符串起作用 18 list( $bar ) = "abcde" ; 19 var_dump ( $bar ); // NULL 20 ?>
Example #2 list() 用法的一个例子
<table> <tr> <th>Employee name</th> <th>Salary</th> </tr> <?php $result = mysql_query ( "SELECT id, name, salary FROM employees" , $conn ); while (list( $id , $name , $salary ) = mysql_fetch_row ( $result )) { echo " <tr> " . " <td><a href="info.php?id= $id "> $name </a></td> " . " <td> $salary </td> " . " </tr> " ; } ?> </table>
Example #3 使用嵌套的 list()
1 <?php 2 3 list( $a , list( $b , $c )) = array( 1 , array( 2 , 3 )); 4 5 var_dump ( $a , $b , $c ); 6 7 ?>
int(1) int(2) int(3)
Example #4 在 list() 中使用数组索引
1 <?php 2 3 $info = array( 'coffee' , 'brown' , 'caffeine' ); 4 5 list( $a [ 0 ], $a [ 1 ], $a [ 2 ]) = $info ; 6 7 var_dump ( $a ); 8 9 ?>
产生如下输出(注意单元顺序和 list() 语法中所写的顺序的比较):
array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }
注释
Warning
list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。
Warning
在 list() 执行过程中修改数组(比如使用 list($a, $b) = $b)将会产生不可预知的结果。
Note:
list() 仅能用于数字索引的数组并假定数字索引从 0 开始。