在 php 中,传递变量时使用 & 符号表示引用传递,可直接修改函数外部变量的值;而按值传递仅创建变量副本,修改副本不会影响原始变量。引用传递常用于需要修改外部变量的情况,如遍历数组时修改元素。
引用对 PHP 函数参数的影响
在 PHP 中,使用符号 & 传递一个变量作为引用参数,可以使函数直接修改该变量的值。这与按值传递形成对比,按值传递时函数只会创建变量的副本。
按值传递
立即学习“PHP免费学习笔记(深入)”;
function increment($number) { $number++; } $number = 10; increment($number); echo $number; // 输出: 10
在上面的例子中,increment() 函数接收到变量 $number 的副本,并且在函数内部修改副本的值。然而,这不会影响原始变量 $number,因此 echo 语句仍会输出 10。
引用传递
function increment(&$number) { $number++; } $number = 10; increment($number); echo $number; // 输出: 11
修改 increment() 函数,使其接受引用参数,就可以直接修改原始变量的值。通过在参数类型前面加上 & 符号,函数将直接引用 $number 变量而不是其副本。
实战案例
引用传递通常用于需要修改函数外部变量的情况。例如,在遍历数组时,可以通过引用传递数组元素,以便在函数中对元素进行修改。
$array = [1, 2, 3]; function modify_array_element(&$element) { $element *= 2; } array_walk($array, 'modify_array_element'); print_r($array); // 输出: [2, 4, 6]
在上面的例子中,array_walk() 函数遍历数组,并对每个元素调用 modify_array_element() 函数。函数接受元素的引用,并将其值加倍。这会修改原始数组中的元素,而不是创建它们的副本。
以上就是引用对 PHP 函数参数的影响的详细内容,更多请关注php中文网其它相关文章!