php list()注意事项

在一个项目中,由于错误使用了list()这个函数,导致了数据错误发生。


参考php.net, 对list介绍如下:

list 把数组中的值赋给一些变量。 像 array() 一样,这不是真正的函数,而是语言结构。 list() 用一步操作给一组变量进行赋值。

Note:

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

<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>

这个$a的结果是

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

不是预计的从左向右依次赋值,原因是: list() 从最右边一个参数开始赋值。

但是当list中参数是3个变量时,代码如下:

$info = array('coffee', 'brown', 'caffeine');
list($a, $b, $c) = $info;
var_dump($a, $b, $c);
....................................
string(6) "coffee"
string(5) "brown"
string(8) "caffeine"

 

$content = "哈哈哈"; 
$extras = array(); $extras[
'comment'] = "快来看美女"; $extras['image'] = "http://i3.itc.cn/20121025/a6f_c7e18070_6f10_8085_77e8_e8bbfec264ae_1.jpg"; $extras['url'] = 'http://www.baidu.com'; list($content, $extras) = array('content' => $content, 'extra' => $extras);

此段代码打印出来 $content和$extras变量都没有值,原因是array这个数组带有键值,将代码改成

list($content, $extras) = array($content, $extras);

ok了。

转载于:https://www.cnblogs.com/fengzhizi/archive/2012/10/25/2739262.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值