php 5.3 循环数组时的怪现象

$arr = array(0,1,2,3)
foreach($arr as $v){
	
}
var_dump(current($arr)) //最后数组指针停留在数组结尾,取不到值,false

循环过程中,拨动了arraycopy的指针,$arr的指针也在拨动,都拨动了最后,最后数组指针停留在数组结尾,取不到值,false

$arr = array(0,1,2,3)
foreach($arr as $k=>$v){
		$arr[$k] = $v;
 }
var_dump(current($arr)); //1

赋值就是发生了写 ,就要分裂了 ,有自己的zvalue了 和哈希表

刚开始都是0,值是零,指针也是零,现在还没有分裂,做了一个赋值的操作,指到1,写坏了分裂了,影响的是arraycopy,复制了一份循环
在这里插入图片描述
另一个问题

并不是修改 a r r , 而 是 arr ,而是 arrarrcopy ,而是从 a r r c o p y 取 值 赋 给 了 arrcopy取值赋给了 arrcopyv,有这一步的操作的变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a r r c o p y 这 些 付 给 了 arrcopy这些付给了 arrcopyv

0 是 a

KaTeX parse error: Expected 'EOF', got '&' at position 5: v是引用&̲arr[3];
$arr[3]的值被影响了
a b c a

走了四圈,每一圈都是引用赋值

1、数组使用时,慎重引用
2、foreach使用后,不会把数组的内部指针重置,使用数组时,不要假想内部指针正好指向数组头部,也可以在foreach之后,rest一下数组

php7后续会写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟伟哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值