zoukankan      html  css  js  c++  java
  • 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
    ?>
    踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。
  • 相关阅读:
    晕,又要学新东西了!
    十一之旅(1)
    结束放假◎!
    容颜总有一天会慢慢老去
    JS里在光标位置插入字符
    放假啦,暂别七天
    好久没来,小小的Happy一下
    唉唉唉
    关于Timer使用,为什么程序会死掉
    于Excel文件上传读取数据的问题
  • 原文地址:https://www.cnblogs.com/xiaofeilin/p/14366283.html
Copyright © 2011-2022 走看看