
发表时间:2020-07-01 16:36:05 浏览次数:1590
新手很容易犯这样一个错误,直接拿网上的例子来说明问题。
代码:
//数组
$arr = ["foo", "bar", "baz"];
//循环
foreach ($arr as &$item) {
/* do nothing by reference */
}
//打印
print_r($arr);
//循环
foreach ($arr as $item) {
/* do nothing by value */
}
//打印
print_r($arr); // $arr has changed....why?输出:
Array ( [0] => foo [1] => bar [2] => baz ) Array ( [0] => foo [1] => bar [2] => bar )
这是发现两次输出结果不一样,第二次输出不是我们预期的结果,数组里最后一个元素被替换,和上一个元素重复。其实原因就是第一次循环时使用了“&”符号,这个问题解释清楚比较绕,不作过多解释,直接说解决办法,在第二次循环之前加如下代码:
unset($item); // This will fix the issue.
参考链接:
微信扫码支付
时间:2019-12-03 22:35:13 浏览:2289
时间:2014-03-31 14:05:43 浏览:575
时间:2019-01-18 22:02:45 浏览:769
时间:2019-01-18 22:15:14 浏览:996
时间:2019-01-18 22:11:32 浏览:580
时间:2019-01-25 15:18:33 浏览:698
时间:2020-01-06 14:28:54 浏览:495
时间:2019-01-18 22:01:38 浏览:485
时间:2019-01-18 22:05:34 浏览:583
时间:2019-02-22 10:19:56 浏览:695