由php手册中可以看到对list的定义:
list — 把数组中的值赋给一些变量,像 array() 一样,这不是真正的函数,而是语言结构。list() 用一步操作给一组变量进行赋值。
array list ( mixed $varname
[, mixed $...
] )
可以看到list()的返回值一个数组;
(1)使用list交换两个变量的值:
$a = ‘sb‘; $b = ‘you‘; list($a,$b) = array($b,$a); echo $a,$b
(2)官方文档中的栗子
<?php $info = array(‘coffee‘, ‘brown‘, ‘caffeine‘); // 列出所有变量 list($drink, $color, $power) = $info; echo "$drink is $color and $power makes it special.\n"; // 列出他们的其中一个 list($drink, , $power) = $info; echo "$drink has $power.\n"; // 或者让我们跳到仅第三个 list( , , $power) = $info; echo "I need $power!\n"; // list() 不能对字符串起作用 list($bar) = "abcde"; var_dump($bar); // NULL ?>
(3)list的嵌套
<?php list($a, list($b, $c)) = array(1, array(2, 3)); var_dump($a, $b, $c); ?> int(1) int(2) int(3)
Warning
list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。
在 list() 执行过程中修改数组(比如使用 list($a, $b) = $b)将会产生不可预知的结果。
Note:
list() 仅能用于数字索引的数组并假定数字索引从 0 开始。
原文:http://www.cnblogs.com/isykw/p/6268564.html