详解 php引用传递参数

2025-05-26 09:54:29

1、先看下我们的示例代码,如图,我们先定义一个方法,名字叫jingyan,参数都是用值传递。方法逻辑也很简单,对二个传进来的参数进行相加,然后把结果返回。

详解 php引用传递参数

2、再定义一个方法,在这个方法里调用函数jingyan,然后把函数返回的结果,和其中一个参数输出显示。

详解 php引用传递参数

3、运行页面,我们得到输出,结果正常。

详解 php引用传递参数

4、这次,我们把jingyan方法的第二个参数由值传递,改成引用传递,在其参数名前面添加‘&’符号。代码如图

详解 php引用传递参数

5、调用的方法没有改动,再次运行代码,看到结果如图。从图中看到方法运行的结果冤铘讵柘没有变,还是31,但变量B却变了,定义这个变量时赋值是20,禊耗髻编现在输出显示是21了。为什么这样?这就是因为我们把方法改成引用传递的结果。变量b是引用传递给方法的,在方法里,我们对参数b进行了加1操作,使得b的值变为21了,但这个参数b其实和方法外传递过来的变量b是指向同一个地方的,修改了参数b,变量b也会跟着改变。

详解 php引用传递参数

6、换个角度解析,更清晰点,如图,当为引用传递时,变量b和参数b同时指向的内存块假设为p,当在函数里,参数b把原来的值加1变为21,则p由20变为21了,所以当输出变量b的值时,其实就是输出p的值,也是21。

详解 php引用传递参数

7、为什么要使用引用传递?烂瘀佐栾这里就简单举例一个需要使用引用传递的场景。调用一个函数,只能有一个返回值,(除非你返回的是一个剞麽苍足数组,数组里就可以包含多个值,但严格来说,这也是只能返回一个值,一个数组)。但你调用函数,需要返回二个值时,使用引用传递就间接达到这个目的。因为我们调用一个函数后,变量b和c二个值都改变了。

详解 php引用传递参数
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢