浅谈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同样也发生改变。*/

 

posted @ 2013-12-17 13:43  樰梅  阅读(595)  评论(0编辑  收藏  举报