Home >Backend Development >PHP Problem >How to pass reference in php

How to pass reference in php

PHPz
PHPzOriginal
2023-05-07 10:02:07759browse

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.

In addition to explicitly declaring parameters using the & symbol, you can also use

&$var to return the result of a function:

function &getRef() {
  $num = 10;
  return $num;
}

$numRef = &getRef();
$numRef = 20;
echo getRef(); // 输出 20
This example shows how to return a variable citation. Function

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.

It should be noted that you need to be careful when using reference transfer, because the value of the variable may be modified by other code, thus affecting the readability and maintainability of the program. Therefore, it is recommended to use pass-by-reference only when necessary.

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Clearing session in phpNext article:Clearing session in php