php list

list

(PHP 4, PHP 5)

list — 把数组中的值赋给一些变量

说明

array list ( mixed $varname [, mixed $... ] )

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.\n" ;
 8 
 9 // 列出他们的其中一个
10 list( $drink , ,  $power ) =  $info ;
11 echo  " $drink  has  $power .\n" ;
12 
13 // 或者让我们跳到仅第三个
14 list( , ,  $power ) =  $info ;
15 echo  "I need  $power !\n" ;
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>\n"  .
           "  <td><a href=\"info.php?id= $id \"> $name </a></td>\n"  .
           "  <td> $salary </td>\n"  .
           " </tr>\n" ;
}

?>

</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 开始。

 

参见

 

  • each() - 返回数组中当前的键/值对并将数组指针向前移动一步
  • array() - 新建一个数组
  • extract() - 从数组中将变量导入到当前的符号表

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。