在PHP中参数有两种传递方式,分别是值传递和引用传递。值传递是将要传递的值作为一个副本进行传递;而引用传递则是传递引用对象的内存地址。
下面则是对这两个的详解
1:值传递
值传递是参数在调用函数前后不发生改变,传递给函数的只是这个参数的值。也就是说在传递参数时函数范围内对这些值的任何改变都在函数外部被忽略掉。PHP中除了对象类型外,其他类型的参数传递都是值传递。
2:引用传递
如果我们希望在函数内部修改参数值,且函数的外部也能同时改变该参数值,可以用引用传递,引用传递参数的方式在参数前面添加 "&" 符号。
在引用传递方式中,当参数传递给函数时,函数不在创建一个新变量,而是直接获得一个原有变量的引用。我们可以像使用其他变量一样使用该引用变量,其区别在于不是获得本身的值,而是指向原来的值。任何对该引用的修改都会影响到原始变量值。
下面是一个例子:
<?php
function change($number){
$number = $number + 1;
echo $number."<br/>";
}
$number = 10;
change(&$number);
echo $number;
?>