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