foreach的指针问题】的更多相关文章

之前发过一次微博,今天又遇到这个问题,并且再次犯错,于是决定再加深一下. 就举php.net里的一个例子吧 $a = array('abe','ben','cam'); foreach ($a as $k=>&$n){ $n = strtoupper($n); } print_r($a); foreach ($a as $k=>$n){ // notice NO reference here! echo "$n\n"; } print_r($a); 输出的结果是:…
从代码: $arr = array(,,,,); echo '$arr = array(1,2,3,4,5)','<br>'; foreach($arr as $key => &$row) { echo key($arr), '=>', current($arr), "||"; echo $key, '=>', $row, "<br>"; } foreach($arr as $key => $row) { ec…
1使用for循环遍历数组 count($arr)用于统计数组元素个数         for循环只能用于遍历,纯索引数组!!如果存在关联数组,count统计两种数组的总个数         使用for循环遍历混合数组,导致数组越界 $arr=array(1,2,3,4,5,6,7);          $num=count($arr);//count最好放在for外面,可以让函数只执行一次          for($i=0;$i<count($arr);$i++){          echo…
先看如下的代码 $arr=['a','b','c']; foreach ($arr as $v){ echo $v.'<br>'; } var_dump(current($arr)); 今天给公司做项目的时候莫名其妙遇到了这个问题 由于自己本地的环境是PHP7.0,输出结果是 a b c string 'a' (length=1) 反而跑到服务器上成了这个而结果(服务器上的PHP版本是5.6): a b c bool(false) 不用问,一定是foreach以后指针出问题了 所以保险起见,还…
正则表达式:    1.定界符号        任何字符,一般用  //    2. 模式修正符i        写在定界符外面后面,可不区分大小写    3.preg_replace($reg,"#",$str)        将字符串中满足正则表达式的字符替换为#    4. preg_split($reg,$str)        将字符串分割    5.preg_match($reg,$str,$arr)        匹配第一个,成功返回true,匹配出来的的字符串放到数组$…
2018年10月20日10:39:40 先说结论,foreach 维护的是一套属于自己的数组指针 会在操作数据的时候,分裂一套变量地址,即使你强制使用 & 取地址一样会分裂,不会引用同一套指针 所有在foreach的时候需要主动操作指针的时候,就会出现问题,很容易key超出变量的长度 测试demo 1,测试指针是否同步,会受到数组操作函数的影响 $a = [3,4,5,6,7]; foreach ($array as $k => $v) { p($v); p(next($array)); }…
1. 用数组指针遍历一维数组 <?php header("Content-type:text/html;charset=utf-8"); /*用数组指针遍历一位数组的值*/ $arr = array('a','b','c','d'); echo current($arr); //返回指针当前单元的值 echo next($arr); //指针引动到下一个单元 echo prev($arr); //指针移动到前一个单元,并且返回单元的值 echo end($arr); //指针移动…
一 foreach的语法介绍    PHP 4以上的版本包括了 foreach 结构,这只是一种遍历数组简便方法.foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误.有两种语法,第二种是第一种的有用的扩展. foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement 第一种格式遍历给定的 array_expressio…
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区别. 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b', 4=>'c', 8=>'d'); $arr2=array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', 'd'=>'…
一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: ,,,,,}; int i; // sizeof(nums) 计算nums数组的总字节数 // sizeof(int) 计算int类型所占用的字节数 int length = sizeof(nums)/sizeof(int); ;i<length;i++) { printf("%d ",nums[i]);…