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
?>