<?php
    $a = array(1, 2, 3);
    list($a, $b, $c) = $a;
    var_dump($a, $b, $c);
    // int(1)
    // int(2)
    // int(3)
?><?php
    $a = array(1, 2, 3);
    list($c, $b, $a) = $a;
    var_dump($a, $b, $c);
    // int(3)
    // NULL
    // NULL
?>谁能详细解释一下,结果为什么不同?(详细一点,我只给一个人满分)

解决方案 »

  1.   

    手册中的说明:list() 从最右边一个参数开始赋值。
    $a = array(1, 2, 3);
    //list($c, $b, $a) = $a; 等价于
    $a = $a[2]; //执行到这里时,$a数组就被覆盖了,此时$a的值为整数3
    $b = $a[1]; //用 [] 存取非字符串、数组变量时,总是返回NULL,这一点在手册中也有说明(手册->类型->字符串)
    $c = $a[0]; // NULL
    var_dump($a, $b, $c);