foreach 循环的应用传值

$arr=array(1,5,8,8,9);
foreach ($arr as $key => $value) {
//这里可以一边改外面$arr的值一边下一步循环
$value=++$value;
}
//输入结果
var_dump($arr);
array (size=5)
0 => int 2
1 => int 6
2 => int 9
3 => int 9
4 => &int 10

//如果没有&引用传值 输出效果
array (size=5)
0 => int 1
1 => int 5
2 => int 8
3 => int 8
4 => int 9

原因就是 &的时候直接找到$arr的地址 foreach默认里面的数是值传递

时间: 2024-08-15 08:54:29

foreach 循环的应用传值的相关文章

PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?

PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? 代码如下: <?php $arr = array('one','two','three'); foreach ($arr as &$value){ echo 'Value:'.$value.'<br />'; } foreach ($arr as $value){ echo 'Value:'.$value.'<br />'; } ?>输出结果: Value:one V

foreach循环语句

一.foreach循环语句介绍: 1.格式: for(类型 变量名称:被遍历数组或集合){ 其他操作(输出操作) } 2.作用: 主要是用于简化书写 二.foreach循环语句遍历数组: public class oneHundredAndEight_oneHundredAndNine { public static void main(String[] args) { String[] names = {"萌萌","纯纯","爱爱","

迭代器、foreach循环、泛型集合

集合的迭代 语法:Iterator<Object> it=集合.iterator(); while(it.hasNext()){ Object obj=it.next(); } is.hasNext(); //判断是否有下一个元素 it.next(); //移动指针,返回指针指向元素 注意:集合在遍历的过程中不能进行修改,如果进行了修改操作,那么就会抛出ConcurrentModificationException异常, 如果需要进行删除,使用迭代器的it.remove()方法 foreach

第46条:for-each循环优先于传统的for循环

for-each循环通过完全隐藏迭代器或者索引变量,避免混乱和出错的可能,适用于集合和数组和任何实现Iterable接口的对象. 使用传统for循环,容易出错: enum Face { ONE, TWO, THREE, FOUR, FIVE, SIX } Collection<Face> faces = Arrays.asList(Face.values()); for(Iterator<Face> i = faces.iterator(); i.hasNext();) for(I

for foreach循环

//for循环 int[] nums = {1,2,3,4,5,6,8,7,9,10 }; for (int i = 0; i < nums.Length;i++ ) { Console.WriteLine(nums[i]); } Console.ReadKey(); //foreach循环 int[] nums = { 1, 2, 3, 4, 5, 6, 8, 7, 9, 10 }; foreach (var item in nums) { Console.WriteLine(item); }

For-Each循环

•For-Each循环的加入简化了集合的遍历 •其語法如下 –for(type element : array) { System.out.println(element).... } •参见程序 ForTest.java 当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息. 1 import java.util.ArrayList; 2 import java.util.Collection; 3 impo

JAVA中的for-each循环与迭代

在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>接口(位于java.lang包中),实现这个接口允许对象成为 "foreach" 语句的目标,而此接口中的唯一方法,实现的就是返回一个在一组 T 类型的元素上进行迭代的迭代器. 一.迭代器Iterator 接口:Iterator<T> 1 public interface Iterator<E>{ 2 3 boolean h

JDK5新特性--forEach循环

1.增强for循环概述 简化数组和Collection集合的遍历 2.格式 for(元素数据类型 变量:数组或者Collection集合){     使用变量集合,该变量就是元素 } package cn; public class ForDemo { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for (int i = 0; i < arr.length; i++) { System.out.println

2.24 Java基础总结 ①for-each循环②继承概念③全类名④方法重写

①for-each循环②继承概念③全类名④方法重写 一.for-each循环依次遍历集合中每个元素的时候,for循环的一种int [] a = {1,2,3};for(int result : a){ System.out.println(result);} 全部依次遍历,但是没有细节的处理 二.继承is-a的关系子类继承来自父类中的所有属性和方法,呗继承的受访问修饰符限制但是构造不能被继承,父类的构造在构造是会起作用优点:①复用性②扩展父类属性和方法 Java是单继承,一个类只有一个父类单继承