list()像 array()一样,这不是真正的函数,而是语言结构list() 用一步操作给一组变量进行赋值。例子:

<?php

$a=array(1,2,3);

$b=array('x','y','z');

list($b,$a)=$a;

echo $a,'~~~~',$b;

//分析:此时,首先$a=$a[1],$b=$a[0],list()是从左到右分配值,从右到左开始赋值,因此此时$a=2,$a此时存储的是整型int的值,所以$a[0]等于null,再把$a[0]赋值给$b

//结果:2~~~

?>

<?php

$a=array('1','2','3');

$b=array('x','y','z');

list($b,$a)=$a;

echo $a,'~~~~',$b;

//分析:此时,首先$a=$a[1],$b=$a[0],list()是从左到右分配值,从右到左开始赋值,因此此时$a='2',$a此时存储的是字符串类型的值,而字符串也可以看做是一个索引数组,所以$a[0]='2',再把$a[0]赋值给$b

//结果:2~~~2

?>

<?php

//不借助第三个变量互相交换2个变量的值

$a=3;
$b=9;
list($b,$a)=array($a,$b);
echo $a,'~~~',$b;//结果为:9~~~3

?>

<?php

$arr=array('1'=>'a','3'=>'b','2'=>'c');
list($a,,$c)=$arr;
echo $a,'~~~',$c;

//分析:先分配对应值,$a=$arr[0],$c=$arr[2],再赋值$c=c,$a=null

//结果:~~~c

?>