php的引用(就是在变量或者函数、对象等前面加上&符号)

1.变量的引用

PHP 的引用允许你用两个变量来指向同一个内容(即指向同一个内存地址)

复制代码
<?php
    $a="ABC";
    $b =&$a;
    echo $a;//这里输出:ABC
    echo $b;//这里输出:ABC
    $b="EFG";
    echo $a;//这里$a的值变为EFG 所以输出EFG
    echo $b;//这里输出EFG
?>
2.函数参数的引用传递(传址调用)

传址调用我就不多说了 下面直接给出代码

<?php

    function test(&$a){
        $a=$a+100;
    }
    $b=1;
    echo $b;//输出1

    test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了,相当于,$a = &$b;

    echo "<br>";
    echo $b;//输出101
?>
要注意的是,在这里test(1);的话就会出错,只有变量,函数或者对象可以进行引用传入。
3.函数的引用返回 

<?php
function &test(){
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
}

$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
//以上跟正常函数调用一样,要用到函数的引用返回调用函数时才使用引用才有效果,所以原函数的&符号可以去掉,调用时使用&才有效
$a=&test();//这条语句会输出 $b的值 为3,&test()相当于将test()函数的返回值内存地址与$a内存地址指向同一个,改变返回值或者改变$a,两者都会改变
$a=5;
$a=test();//这条语句会输出 $b的值 为6
?>

 

posted @ 2021-02-03 12:13  小林不会飞  阅读(246)  评论(0编辑  收藏  举报