php foreach引用赋值】的更多相关文章

在写代码时发现php foreach引用赋值会导致意外的行为. 代码示例: <?php $arr = array('a','b','c'); foreach($arr as $k=>&$v) { } print_r($arr); foreach($arr as $k=>$v) { } print_r($arr); ?>     输出结果:     Array ( [0] => a [1] => b [2] => c ) Array ( [0] =>…
首先了解一下“引用赋值”,看一个例子: <?php <?php $a=123; $a=123; $b=$a; $b=&$a; $a=321; $a=321; echo"$a,$b"; echo"$a,$b"; ?> ?> 结果:321 123 结果:321 321 引用赋值:这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量.改动新的变量将影响到原始变量,反之亦然. 下面看一下要注意的问题,用下面的例子说明…
foreach($arr as &$value)1.引用赋值符号&,是每次循环的时候,把当前元素变成地址,$value变量就是对应元素的地址,循环结束$value是一个指向最后一个元素的地址2.当我下次循环,使用了这种方式foreach($arr as $value) ,会出现问题;foreach会把每个元素赋值给后面的$value变量3.因此,逻辑就变成了,把每个元素修改给原数组的最后一个元素,最后一次循环会一直是前一次的结果4.最好不用引用传递,用这种形式$arr[$key]改原数组,…
<?php $arr = array('a', 'b', 'c'); foreach($arr as &$v) {} foreach($arr as $v) {} var_dump($arr); /* 结果为: array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" } */ //第一个foreach用引用赋值的方式将数…
foreach  引用传值& php 怎么在foreach中循环数组   ,的时候添加元素跟值 foreach($arr as $key => &$vo){ //注意,由于上面遍历的时候写了地址传值符&, //所以下面可以直接给$vo 赋值;如果不写&符号,下面这样写是没有任何意义的 $vo['name'] = '张三'; $vo['age'] = '20'; } //这样我们就完成了对数组元素添加name属性和age属性了, 在上面的写法中,如果我们不填写&…
<?php/** * 在PHP 中引用的意思是用不同的名字访问同一个变量内容 * 只有有名字的变量才可以引用赋值,否则会报错 * 引用赋值 不是在内存上同体,只是把各自的值关联起来 * unset不会导致所有引用变量消失 */ $a = 10; $b = &$a; // 引用赋值 echo $b,'<hr>'; // 10 function test(){ return 20; } $b = &test(); echo $b,'<hr>'; // 20 fun…
From: http://blog.csdn.net/yipiankongbai/article/details/45307767 先来看看下面这段代码: <?php $arr = array('apple','banana','cat','dog'); foreach($arr as $key=>$val) { //some code } echo $val; //输出dog echo $key; //输出3 //下面对val进行赋值 $val = 'e'; print_r($arr); /…
大家一起来分析一下下面这段代码: <?php $arr = array(); $arr["abc"] = array("sex" => 100, "age" => 18); $arr["bcd"] = array("sex" => 200, "age" => 19); $arr["cde"] = array("sex"…
通过正则表达式,实现加减 昨晚在做计算器的时候,被一个BUG搞懵比了.现在再看看,发现我好小白啊~~ #++- num = input("please input:") sa = re.split(r'(\D)', num) #区配到非数字则分割 def func(s): #result = ] == '+': result = ]) + ]) elif s[] == '-': result = ]) - ]) ): # 去掉前三个 s.remove(s[]) s.insert(, r…
要说js的赋值方式时首先要说明js的数值类型:基本类型和引用类型. 1.基本类型 基本的数据类型有:undefined,boolean,number,string,null. 基本类型存放在栈区,访问是按值访问的,就是说你可以操作保存在变量中的实际的值. 当基本类型的数据赋值时,赋得是实际的值,a和b是没有关联关系的,b由a复制得到,相互独立.(字面量的才是基本类型) var a=10; var b=a; console.log(a+','+b);    // 10,10a++;console.…