• 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
    ?>
    踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。
  • 相关阅读:
    how to design a good api and why it matters
    耦合_wiki
    python图形界面:首选Tkinter
    进程间通信:KPIPE
    记 · 今日冬至 · 除了吃还有思考
    【Nodejs】448- 深入学习 Node.js Buffer
    记 · 七言古诗 · 劝学
    【CSS】447- 纯CSS实现简单骨骼动画
    【JS】446- 你不知道的 map
    【前端知乎】445- File FileList 和 FileReader 对象详解
  • 原文地址:https://www.cnblogs.com/xiaofeilin/p/14366283.html
Copyright © 2020-2023  润新知