发布时间:2015-05-27 19:22:55作者:知识屋
点击打开链接打开官方手册对foreach的介绍
$value)statement/*上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。 通常循环访问数组都用for循环,例如:*/ for($i = 0; $i < 3; $i++){echo $arr[$i];}//但通过手工代码操作一个大数组来说,用foreach循环的代码更少,上面的代码可以这样写: foreach ($arr as $value){echo $value;}//下面来仔细探讨下foreach使用中的一些问题。 1.foreach 中使用引用的情况。//普通情况下,foreach($arr as $value)中的$arr和$value是拷贝,不受外部影响的,即 $arr = array(0,1,2,3,4,5); foreach($arr as $value){$arr = array();echo $value;} // 12345//但如果$arr是引用的话,情况则不同了,我们用代码来说明问题 $arr = array(0,1,2,3,4,5);$arr = &$arr;foreach($arr as $value){$arr = array();echo $value;}// 0/*这是因为循环用的$arr是直接指向原数据的,而不是copy了一份。 如果$value是引用,而$arr不是引用,其结果是一样的,同样$value是指向原数据的而不是copy。*/ $arr = array(0,1,2,3,4,5);foreach($arr as &$value){$arr = array();echo $value;}// 结果是: 0//还有一种情况比较特殊,即是如果定义了$arr为全局变量的话,$arr也会变成引用: global $arr;$arr = array(0,1,2,3,4,5);foreach($arr as $value){$arr = array();echo $value;}// 结果是: 0//2. 如果两次循环一个数组,一定不能这样写 foreach($arr as &$value){}foreach($arr as $value){} //这会导致第二次的循环的结果不正确。可以用以下几种来代替: view sourceprint?//solution 1foreach($arr as &$value){}unset($value);foreach($arr as $value){}//solution 2foreach($arr as &$value){}foreach($arr as &$value){}//solution 3foreach($arr as &$value){}$arr2 = $arr;foreach($arr2 as $value){}//3.防止foreach出现未定义情况,尽量这样来写foreach foreach((array)$arr as $value) {}?>
如何对PHP文件进行加密方法 PHP实现加密的几种方式介绍
php生成圆角图片的方法 电脑中php怎么生成圆角图片教程
用PHP构建一个留言本方法步骤 php怎么实现留言板功能
php中三元运算符用法 php中的三元运算符使用说明
php文件如何怎么打开方式介绍 php文件用什么打开方法
PHP怎么插入数据库方法步骤 php编程怎么导入数据库教程
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
PHP 获取远程文件大小的3种解决方法 如何用PHP获取远程大文件的大小
20个实用PHP实例代码 php接口开发实例代码详细介绍
如何架设PHP服务器方法步骤 怎么搭建php服务器简单教程