In PHP, there are two ways to pass parameters: passing by value and passing by reference. Passing by value is the default method, which means that modifications to parameters within a function do not affect variables outside the function. Passing by reference will pass the address of the variable to the function, so that modifications to the parameters will affect the variables of the calling function.
In PHP, use the & symbol to indicate passing a reference. Here is some sample code to illustrate the use of pass-by-reference:
function addOne(&$num) { $num++; } $num = 10; addOne($num); echo $num; // 输出 11
In the above code, the function addOne
uses the &
notation to refer to its argument $num
, that is, any changes to $num
will affect the variable that calls the function. In the function, we added 1 to $num
. After calling the function, the value of the original variable $num
was also modified.
Look at the following code again:
function swap(&$a, &$b) { $tmp = $a; $a = $b; $b = $tmp; } $a = 1; $b = 2; swap($a, $b); echo $a; // 输出 2 echo $b; // 输出 1
This example shows the use of passing references to complete the exchange of the values of two variables. Function swap
receives two parameters $a
and $b
and are passed by reference. Inside the function, we save the value of $a
in $tmp
, then set the value of $a
to $b
, setting # The value of ##$b is set to
$tmp. After calling the
swap function, the values of the original variables
$a and
$b are exchanged.
&$var to return the result of a function:
function &getRef() { $num = 10; return $num; } $numRef = &getRef(); $numRef = 20; echo getRef(); // 输出 20
getRef returns a reference to the
$num variable. You can see that after calling the
getRef function, we assign the reference to
$numRef variable, and the value of
$numRef is modified. This will cause the value of the original
$num variable to also be modified.
The above is the detailed content of How to pass reference in php. For more information, please follow other related articles on the PHP Chinese website!