zoukankan      html  css  js  c++  java
  • list each详解

    首先看list

    实例:

    <?php

     
    list($a,$b)=array(10,20);
    echo $a,'~',$b,'<br />';
    //返回10~20
    ?>
     

    再看:

    list($a,$b,,$c)=array(2=>10,3=>20,4=>30,1=>40);

    echo $a,'~',$b,'~',$c,'<br />';
    //返回notice~40~20
    //执行到$a的时候返回给我一个notice:说数组没有0键

    为什么会返回这个notice~40~20呢?

    官方手册有个notice:

    list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

    答: 这涉及到list的运行机制,list是这么赋值的

      首先:不要管右边的数组,看List里面的变量,从左到右应该是  $a = arr[0]   $b=arr[1]  $c=arr[3]

      然后:从右到左开始赋值,赋值的顺序是 $c=arr[3]  $b=arr[1]  $a=arr[0]

    所以$c=20  $b = 40  因为没有arr[0],所以$a给了一个警告

    最后list each

    $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

    reset($fruit);
    while (list($key, $val) = each($fruit)) {
    echo "$key => $val ";
    }

    分解一下each($fruit)为

    Array
    (
      [1] => apple
      [value] => apple
      [0] => a
      [key] => a
    )

    list($key,$val)就分别对应arr[0],和arr[1],所以就是a=>apple

  • 相关阅读:
    angular的路由例子
    angular自定义module
    docker配置phpadmin需要注意的地方
    linux下钉钉,微信
    debian shell脚本关联
    debian下安装带界面的qemu
    ros的一些设置
    新闻排重方案设计
    细解动态规划(一)
    漫画谈-微积分(二)
  • 原文地址:https://www.cnblogs.com/you-jia/p/4151530.html
Copyright © 2011-2022 走看看