Home  >  Article  >  Backend Development  >  Detailed explanation of the three reference example codes of PHP variable reference, function reference and object reference

Detailed explanation of the three reference example codes of PHP variable reference, function reference and object reference

伊谢尔伦
伊谢尔伦Original
2017-07-17 16:48:171558browse

What is a reference

Quoting in PHP means accessing the same variable content with different names. This is not like a C pointer; instead, the reference is a symbol table alias. Note that in PHP, variable names and variable contents are different, so the same content can have different names. The closest analogy is Unix's filenames and the files themselves - the variable names are the directory entries, and the variable contents are the files themselves. References can be thought of as hardlinks in Unix file systems.
1: Reference to variables

<?php
$a =100;
$b = &$a;
echo $b;    //这里输出100
echo $a;    //这里输出100  ,说明$a,和$b的值都是一百。
$b= 200;
echo $a;    //这里输出200
echo $b;    //这里输出200,这就可以看出他们用的是同一个地址。改变一个,另一个也会跟着改变。
?>

2: Passing value by reference in function

<?php
function main($a,$b){
    $b= $a+100;
    return $b;
}
main(55,&$b);      //这里的$b其实就是把它的内存地址传递给函数main中的$b参数,通过参数$b的改变而改变外面的$b的值。
echo $b;  //这里会输出155,
?>


3: Object Passing by value by reference
Object reference

<?php
class club{
var $name="real madrid";
}
$b=new club;
$c=$b;
echo $b->name;//这里输出real madrid
echo $c->name;//这里输出real madrid
$b->name="ronaldo";
echo $c->name;//这里输出ronaldo
?>

Unreference
When you unset a reference, you just break the binding between the variable name and the variable content. This does not mean that the variable contents are destroyed. For example:

<?php
$a = &#39;ronaldo&#39;
$b =&$a;
unset ($a);
?>

will not unset $b, just $a.

The above is the detailed content of Detailed explanation of the three reference example codes of PHP variable reference, function reference and object reference. 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