浅谈php传值和传址
php参数传递的方式有两种,传值和传址
理论介绍
1、传值:缺省情况下,函数参数通过传值的方式传递,因此即使在函数内部改变参数的值,它并不会改变函数外部参数的值。
2、传址:传址时只需在函数调用时在参数的前面加上“&”号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。所以希望函数修改外部参数的值,必须使用传址传址方式。 PHP引用&符号是一个比较难掌握的知识点。因为如果你对PHP引用&符号的使用理解错误,将会导致你所编写的整个代码出现错误。下面就结合详细的例子来介绍下传值跟传址的区别:
传值:
$a = 'hellow word'; $b = $a; $b = 'hellow php'; echo '$a='.$a; //$a=hellow word echo "<br>"; echo '$b='.$b; //$b=hellow php /*解析:执行$b=$a(传值),只是把$a的值重新赋值给$b,$a与$b分别占用不用的内存,此时$b发生改变时,并不影响$a。*/
传址:
$a = 'hellow word'; $b = &$a; $b = 'hellow php'; echo '$a='.$a; //$a=hellow php echo "<br>"; echo '$b='.$b; //$b=hellow php /*解析:执行$b = &$a(传址),是把$a的地址专递给$b,此时$a与$b指向的是同一个地址,$b发生改变,$a同样也发生改变。*/