前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php 使用函数中遇到的坑之----list

php 使用函数中遇到的坑之----list

作者头像
joshua317
发布2018-04-16 12:41:02
8940
发布2018-04-16 12:41:02
举报
文章被收录于专栏:技术博文技术博文

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

代码语言:javascript
复制
<?php
$info = array('coffee', 'brown', 'caffeine');
// 列出所有变量
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";


?>
代码语言:javascript
复制
<?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() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。
代码语言:javascript
复制
<?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;
?>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档