猿问
下载APP

函数参数里有个引用符号,这起到什么作用,解释下。

$array2 = array('1','2','3','4','5','6','7','8','9');

function test2(&$var){//这段的引号符号&没搞懂

$var*=3;

return $var;

}

$res=array_walk($array2,'test2');//重新定义变量$array2变量中的数组;

var_dump($res);//成功则返回true;

echo "<hr/>";

var_dump($array2);//输出已经被重新定义过的数组;


慕妹3308121
浏览 2569回答 5
5回答

我只是艾特

使用&传地址,举一个简单的例子,慕妹3308121有了男朋友,而且还同居了,&$var就相当于拿一把钥匙的男朋友,由于慕妹3308121长的漂亮,只用刷脸就可以进家门,传进来的值就是你们的家,如果男朋友在家把家具挪了一下位置,丢了一点垃圾,但是还是慕妹3308121的家。

JackWho

去掉 & 执行一次就知道了, $array2 的值就是通过 & 符号改变的 - 大家都知道函数拥有局部作用域,$array2 又不在函数里面, 不然值是怎么改变的

雷小天博客

 传值,   是把实参的值赋值给行参   那么对行参的修改,不会影响实参的值   传地址   是传值的一种特殊方式,只是他传递的是地址,不是普通的如int   那么传地址以后,实参和行参都指向同一个对象   传引用   真正的以地址的方式传递参数   传递以后,行参和实参都是同一个对象,只是他们名字不同而已   对行参的修改将影响实参的值    $a = "123";  $b = &$a;  echo $a."-".$b; // 输出:123-123  echo "<br/>";  $b = "456465"; // 输出:456465-456465  echo $a."-".$b;  // 结论 :  // PHP 传引用时 形参 发声改变的时候 实参也发生改变;仅讨论一下值传递和引用:   所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。   所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。

奔腾的小丝瓜

你可以了解一下指针

书旅

你百度一下按引用传递和按值传递就理解了,百度一下吧
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答