PHP function parameters can be passed by reference or by value. Passing by value does not modify the external variable, while passing by reference modifies the external variable directly, enabled using the & symbol. Passing by reference is often used to modify array elements and optimize performance.
In PHP, function parameters can be passed by reference or by value. These two transfer methods determine whether modifications to parameters inside the function will affect variables outside the function.
Pass by value is PHP’s default parameter passing method. In this way, any modification of parameter values inside the function will not affect variables outside the function. This is because PHP creates a copy of the parameter value when passing it.
function add_by_value($a, $b) { $a += $b; } $x = 10; $y = 5; add_by_value($x, $y); echo $x; // 输出 10,因为 $x 的值没有被修改
If you want to modify variables outside the function, you can use pass by reference. In pass-by-reference, modifications to parameters inside the function will be directly reflected in variables outside the function. This is because PHP creates a reference to the parameter when passing it, rather than a copy.
To enable reference passing, you need to add the &
symbol before the function parameters.
function add_by_reference(&$a, &$b) { $a += $b; } $x = 10; $y = 5; add_by_reference($x, $y); echo $x; // 输出 15,因为 $x 的值被修改了
In actual development, reference passing is mainly used in the following scenarios:
function modify_array_element(&$array, $key, $value) { $array[$key] = $value; } $array = ['foo' => 'bar']; modify_array_element($array, 'foo', 'new_value'); echo $array['foo']; // 输出 new_value
The above is the detailed content of What are the parameters passing methods for PHP functions?. For more information, please follow other related articles on the PHP Chinese website!