第二题:<?
$a=array(2,4,5);
foreach($a as $b ) {
$c+=$b;
unset($a);
}
echo $c;不要测试,告诉我$c的值。
$a=array(2,4,5);
foreach($a as $b ) {
$c+=$b;
unset($a);
}
echo $c;不要测试,告诉我$c的值。
解决方案 »
- 关于curl所抓取的cookie有效时间的问题
- form表单中type为"hidden"的值能否随while循环变化?
- 日期的选择
- 求助,用<?php echo $fuwu; ?>打印出来是%u2605?怎么能显示正常?
- 请问应该选用什么样的方式储存模板
- php 合并 两个mysql 表格问题,请教
- 了解一下 PHP 下的框架大家用哪个?
- onclick事件里加入confirm告警对话框的问题!!!!!!!再线等,加分给解决的人。
- session使用前是不是还要对其进行某些配置呀,怎么配
- 为什么老是不对啊!
- 如何让googlesearch的查询结果包含在自己的网页里?
- 有没有代替session功能的东西
当foreach($a as $b),$b是做为value的,如果foreach($a as $b => $c),这时$b就做为key了.
答案就是!1 : 10
2 : 11
其实这两个题考的是foreach($a as $b)时,$b到底做为数组的key还是做为数组value.
当foreach($a as $b),$b是做为value的,如果foreach($a as $b => $c),这时$b就做为key了.
------------
错。
大家想不到的地方在foreach循环的时候 $b赋值问题, 其实就是每次循环的时候$b重新赋值!!!!而不是累加!!! 最后位是5,5+5=10
很容易让人产生职业幻觉,,。。 4+4 再+5
=============
明白了$a=array(2,4,5);
foreach($a as $b ) {
$b+=$b;
unset($a);
}
var_dump($a);结果为null 这里似乎存在歧义$a明明已经被unset了在循环里却还能使用,是否可以理解为php的bug
所以我一般用list($k,$v)=each();
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。
注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。 注: 此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each() 的构造,原数组指针也没有变,数组单元的值也不受影响。
注: foreach 不支持用“@”来禁止错误信息的能力。
b=2+2=4
b=4+4=8
b=5+5=10
结果10
2
c=0+2=2
c=2+4=6
c=6+5=11
结果11
$a=array(2,4,5);
foreach($a as $b ) {
$a=&$b;
$a++;
unset($a);
}
echo $b;不要测试,告诉我$b的值。
嘿嘿