两次foreach循环,第一次的循环中使用了&的问题:
示例代码:
返回结果:
由输出结果可以看出,第二次循环,每一次都是在给$a[2]进行赋值
造成该问题的原因是,在第一次的foreach循环中,对$v使用了”&”,即引用赋值,引用赋值是不会分配存储空间的,也就是说在第一次循环结束后,$a[2]和$v共享同一个存储空间,第二次循环每一次对$v的修改都是对$a[2]的修改。因此,在实际使用中,要么在循环结束后及时unset($v),要么在后面的foreach中不要使用相同的变量名。
两次foreach循环,第一次的循环中使用了&的问题:
示例代码:
返回结果:
由输出结果可以看出,第二次循环,每一次都是在给$a[2]进行赋值
造成该问题的原因是,在第一次的foreach循环中,对$v使用了”&”,即引用赋值,引用赋值是不会分配存储空间的,也就是说在第一次循环结束后,$a[2]和$v共享同一个存储空间,第二次循环每一次对$v的修改都是对$a[2]的修改。因此,在实际使用中,要么在循环结束后及时unset($v),要么在后面的foreach中不要使用相同的变量名。
相关文章: