PHP中的foreach

PHP中的foreach

之前在论坛上看到foreach两个比较难以理解的案例,谨此博文已记之。

案例1

$arr = [1,2,3];
foreach($arr as &$val){
	$val = $val * 2;
}
foreach($arr as $val){}

最终结果为:[2,4,4]
具体讲解参考:
https://juejin.im/post/5b596b9b6fb9a04fd450a16f

案例2

$arr = array('aa', 'bb', 'cc');
foreach($arr as $k=>$v){
    $v = &$arr[$k];
}

这个问题牵涉到foreach内部的一些东西,
分析:第一次遍历:$v = & $arr[0],此时 $arr的值为[‘aa’,‘bb’,‘cc’];
数组内部指针前进一位, $v 指向了 ‘bb’, 此时 $arr的值为[‘bb’,‘bb’,‘cc’];
数组内部指针前进一位, $v 指向了 ‘cc’, 此时 $arr的值为[‘bb’,‘cc’,‘cc’]
至此数组指针为null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值