zoukankan      html  css  js  c++  java
  • php 使用函数中遇到的坑之----list

    1. list 把数组中的值赋给一些变量

    <?php
    $info = array('coffee', 'brown', 'caffeine');
    // 列出所有变量
    list($drink, $color, $power) = $info;
    echo "$drink is $color and $power makes it special.
    ";
    
    
    ?>
    <?php
    
    $info = array('coffee', 'brown', 'caffeine');
    
    list($a[0], $a[1], $a[2]) = $info;
    
    var_dump($a);
    
    ?>
    
    产生如下输出(注意单元顺序和 list() 语法中所写的顺序的比较):
    array(3) {
      [2]=>
      string(8) "caffeine"
      [1]=>
      string(5) "brown"
      [0]=>
      string(6) "coffee"
    }
    
    Warning
    list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。
    <?php
            $info = array('a'=>'coffee', 'b'=>'brown', 'c'=>'caffeine');
            list($drink, $color, $power) = $info;
            echo $drink;
    ?>
    
    这个时候会抛出异常:
    Exception Object
        [message:protected] => [Notice] : Undefined offset: 2
    
    这是因为:
    list() 仅能用于数字索引的数组并假定数字索引从 0 开始。
    
    解决办法可以使用sort处理下
    <?php
            $info = array('a'=>'coffee', 'b'=>'brown', 'c'=>'caffeine');
            sort($info);
            list($drink, $color, $power) = $info;
            echo $drink;
    ?>
  • 相关阅读:
    时间戳(UnixTimestamp)与 《2038年问题》
    端口相关命令
    Ubuntu中的在文件中查找和替换命令
    A Reusable Aspect for Memory Profiling
    acc文件的运行
    A Reusable Aspect for Memory Allocation Checking
    ACC常用语句
    aspectC++常用命令
    c++调用DOS命令,不显示黑屏
    fopen文件目录问题
  • 原文地址:https://www.cnblogs.com/joshua317/p/5825599.html
Copyright © 2011-2022 走看看