php foreach循环语句的&$value与$value辨析;

来源:互联网 发布:函数式编程 知乎 编辑:程序博客网 时间:2024/06/13 01:53

本人刚接触php 结合百度知道的两个提问:

一:foreach($array as $k=>&$v) //注意这句,$v前面多了个&

二:第二次遍历foreach ($a as $val)将每个元素依次赋值到最后一个地址上。

<?php$arr = array(1, 2, 3, 4);foreach ($arr as &$value) //注意$value前有符号&;{ $value = $value * 2;echo $value."BB";echo $arr."KK";//为什么此句输出为 Array 并且循环}// $arr is now array(2, 4, 6, 8)echo "<p>".$value;echo "<br>".$arr."<p>";print_r($arr);                                    // 比较两次print_r($a);的输出foreach ($arr as $value)://此句$value前无&这符号echo $value."PP";endforeach;echo"<p>";print_r($arr);  //比较两次print_r($a);的输出echo ($arr);echo "<p>".$value."HH";?>

下图为我的输出结果。

有一例:(print_r数组 的遍历)

<?php$arr=array(1,2,3,4);foreach ($arr as &$array)$array=$array*2;echo $arr."W"."<p>";echo $array;//输出0print_r ($arr)."<br>";foreach ($arr as $array){//不是&$array;$array=$array*2;print_r ($arr);}echo $arr."W"."<p>";echo $array;//输出16print_r ($arr);?>