PHP中函数参数有两种传递方式值传递和引用传递。

区别

值传递,函数内部的修改不影响函数外的修改。

引用传递,函数内部的修改影响函数外的修改。

优缺点

值传递,值传递是对参数的一个拷贝,不影响函数外的值,但是对系统存在内存的消耗。

引用传递,值传递是对参数的地址,影像函数外的值,但是相对值传递系统内存消耗少。

它们各有优缺点,实际情况根据需要使用不同的方式。

例子

值传递

<?php

//值传递,函数
function test($a){
    $a = $a+3;
    return $a;
}

$a = 1;
$b = test($a);
echo "a值:".$a."<br>";
echo "b值:".$b;

?>

测试一下

输出

a值:1
b值:4

引用传递

<?php

//引用传递,函数
function test(&$a){
    $a = $a+3;
    return $a;
}

$a = 1;
$b = test($a);
echo "a值:".$a."<br>";
echo "b值:".$b;

?>

测试一下

输出

a值:4
b值:4

 从结果看出,值传递时$a的值没有改变还是1,而引用传递时$a的值也改变了,变为4了。

总结

面试过程中,一般只需要说出引用传递会改变函数外的值即可。