手册中数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留的理解
2015-01-22 17:30
417 查看
数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。Note:foreach 不支持用“@”来抑制错误信息的能力。
代码如下
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
$arrayName = array(
'0' => array(
'1' =>"houzi" ,
'2' =>"xiaogou"
) ,
'1' => array(
'2' =>"houzi" ,
'3' =>"xiaogou" )
);
var_dump($arrayName);
foreach ($arrayName as $key => &$value) {
$value[2]="xiugua";
}
echo "-----------------------------------------------------------";
var_dump($value);
echo "-----------------------------------------------------------";
var_dump($arrayName);
echo "-----------------------------------------------------------";
unset($value);
var_dump($arrayName);exit;
结果如下:
0 => array (size=2) 1 => string 'houzi' (length=5) 2 => string 'xiaogou' (length=7) 1 => array (size=2) 2 => string 'houzi' (length=5) 3 => string 'xiaogou' (length=7)
-----------------------------------------------------------
array (size=2) 2 => string 'xiugua' (length=6) 3 => string 'xiaogou' (length=7)
-----------------------------------------------------------
array (size=2)
0 =>
array (size=2)
1 => string 'houzi' (length=5)
2 => string 'xiugua' (length=6)
1 => &
array (size=2) 2 => string 'xiugua' (length=6) 3 => string 'xiaogou' (length=7)
-----------------------------------------------------------
array (size=2) 0 => array (size=2) 1 => string 'houzi' (length=5) 2 => string 'xiugua' (length=6) 1 => array (size=2) 2 => string 'xiugua' (length=6) 3 => string 'xiaogou' (length=7)
相关文章推荐
- 数组最后一个元素的 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁
- php的array数组 -------方法foreach循环时候,利用数组里值的引用地址(& )从而改变数组里的值
- fastJson数组添加元素时禁用循环引用
- c#---部分;把数组或者结构体存入集合里,然后再从集合中取出之后,输出;foreach既可以用到提取数组重点额数据,也可以提取集合中的数据(前提是集合中的元素是相同数据类型)
- C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)
- 使用foreach循环输出数组中的元素
- js中的循环遍历数组中的元素,ES6(for-of)、ES5(forEach、for-in)、通用(for(i=0;i<length;i++))
- 将数组元素循环流动的问题(即数组第一个元素变成最后一个,后面的补上,如此循环几次)
- BUG修复:PaxScript的Array.cancat会覆盖源数组的最后一个元素
- 有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。
- WCF 第六章 序列化与编码 保留引用和循环引用
- 分治 递归 引用 求一个数组中的最大和最小元素
- 第6章_数组_加强循环(foreach)的使用
- 网新恒天笔试题,有两个整形数组A和B,请编程去除这两个数组间的交集。若有相同元素,则在相同元素较多的数组中保留它。例如,数组A有三个1,数组B有两个1,程序将删除数组B中的两个1.
- 试分析如何把数组array中的所有元素循环右移p位
- 所谓"在表达式中,数组名总是被转换为指向该数组第一个元素的指针"应该如何理解?
- 两个数组取相同元素,单层循环的实现?
- awk命令的使用(三)获取数组的最后一个元素
- 将数组 a[n]所有的元素循环右移k位
- ActionScript3.0中利用forEach循环遍历一个数组(Array)对象并且修改其中的项目