您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP中的一个”坑“,PHP"坑"_PHP教程

2024/11/4 5:12:27发布27次查看
php中的一个”坑“,php坑说一个极有可能在工作中遇到的问题——foreach的引用
$arr = range(1,3);//[1,2,3]foreach($arr as &$val) {}foreach($arr as $val) {}print_r($arr);
上面这段代码输出什么呢,神奇的竟然是下面这样,这个我在工作中遇到过一次,当时弄了半天没弄出个所以然,只是找到了解决办法,这个问题解决办法有两个:
array( [0] => 1 [1] => 2 [2] => 2)
下面这两种方式都可以解决上面这个问题:
//方法1foreach ($arr as &$value) {}unset($value);foreach ($arr as $value) {}print_r($arr);//[1,2,3]//方法2foreach ($arr as &$value) {}foreach ($arr as $val) {}print_r($arr);//[1,2,3]//方法3foreach ($arr as &$value) {}foreach ($arr as &$value) {}print_r($arr);//[1,2,3]
方法1在官方的手册中也可以看到http://php.net/manual/en/control-structures.foreach.php,文章中专门有个tips提示这一点$var = 123;$tmp = &$var;$tmp = 200;echo $var;//200 看看下面这张盗来的图(哈哈,原文链接贴在下面),对上面这个更好的理解
1, b => 2, c => 3);$arr2 = array(x => 4, y => 5, z => 6);foreach ($arr1 as $key => &$val) {}foreach ($arr2 as $key => $val) {}var_dump($arr1);var_dump($arr2);?>the output is:array(3) { [a]=> int(1) [b]=> int(2) [c]=> &int(6) }array(3) { [x]=> int(4) [y]=> int(5) [z]=> int(6) }参考文章:
http://www.cnblogs.com/craryprimitiveman/p/4030748.html#3085766
     http://www.jb51.net/article/39299.htm
本文版权归作者iforever(luluyrt@163.com)所有,未经作者本人同意禁止任何形式的转载,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
http://www.bkjia.com/phpjc/975062.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/975062.htmltecharticlephp中的一个”坑“,php坑 说一个极有可能在工作中遇到的问题foreach的引用 $arr = range (1,3 ); // [1,2,3] foreach ( $arr as $val ) {} foreach ( $arr as $...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product