php从版本4开始引入了foreach结构,这和perl以及其他语言很类似.这只是一种遍历数组的简便方法.foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。下面学步园小编来讲解下php循环语句for和foreach的区别有哪些?
php循环语句for和foreach的区别有哪些
有两种语法,第二种比较次要但却是第一种的有用的扩展.
foreach(array_expressionas$value){
......
}
foreach(array_expressionas$key=>$value){
......
}
第一种格式遍历给定的array_expression数组.每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元).
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量$key.
自php5起,还可能遍历对象.
注:当foreach开始执行时,数组内部的指针会自动指向第一个单元.这意味着不需要在foreach循环之前调用reset().
注:除非数组是被引用,foreach所操作的是指定数组的一个拷贝,而不是该数组本身.因此数组指针不会被each()结构改变,对返回的数组单元的修改也不会影响原数组.不过原数组的内部指针的确在处理数组的过程中向前移动了.假定foreach循环运行到结束,原数组的内部指针将指向数组的结尾.
php循环语句for和foreach的区别有哪些
自php5起,可以很容易地通过在$value之前加上&来修改数组的单元.此方法将以引用赋值而不是拷贝一个值.
$arr=array(1,2,3,4);
foreach($arras&$value){
$value=$value*2;
}
//$arrisnowarray(2,4,6,8)
?>
此方法仅在被遍历的数组可以被引用时才可用(例如是个变量).
注意:foreach不支持用“@”来抑制错误信息的能力。
以上就是关于“php循环语句for和foreach的区别有哪些”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!