zoukankan      html  css  js  c++  java
  • PHP引用(&)案例介绍

    变量引用

     

    案例:

    <?php
    
    //变量单独引用
    
    $test = "a string!
    ";
    
    $quote = &$test;
    
     
    
    echo $test; //a string!
    
    echo $quote;//a string!
    
     
    
    $quote = "exchange!
    ";
    
    echo $test; //exchange!
    
    echo $quote;//exchange!
    
     
    
    unset($quote);
    
    echo $test; //exchange!
    
     
    
    //函数传参引用
    
    $num = 10;
    
    echo $num."
    ";
    
    test($num);
    
    echo $num."
    ";
    
     
    
    function test( &$num) {
    
        $num += 10;
    
    }
    

      

    结论

    PHP 的变量引用相当于不同的变量都指向同一个内容。也会操作这一份内容,如果删除其中一个引用,另外一个引用不受影响,相当与删除的变量不在指向同一个内容,但是不能为常量。(相当于一个人有好多个名字,及时去掉一个名字,也不会影响人这个实体)

    函数引用返回

    案例1:

    <?php
    
     
    
    $t = test(); // 1
    
    var_dump($t); // int(1)
    
    $t = 20; $t = test(); //2
    
    var_dump($t); //int(2)
    
    $t = &test(); //3
    
    var_dump($t) ; //int(3)
    
    $t = 20; $t = test(); //21
    
    var_dump($t); //int(21)
    
     
    
    function &test() {
    
        static $test = 0;
    
        $test += 1;
    
        echo $test."
    ";
    
         
    
        return $test;   
    
    }
    

      

    案例2:

    ?php
    
     
    
    $t = test();
    
     
    
    function &test() {
    
        static $test = 0;
    
        $test += 1;
    
        echo $test."
    ";
    
    }
    
     
    
     
    
    $ php test.php 
    
    1
    
    PHP Notice:  Only variable references should be returned by reference in /home/q/www/zt.dujia.qunar.com/test.php on line 9
    

      

    结论:

    相当于 $t = &test; 说白了还是 变量之间的引用。

    对象引用

    案例:

    <?php
    
    class a{
    
        var $abc="ABC";
    
    } 
    
    $b=new a; 
    
    $c=$b; 
    
    echo $b->abc;//这里输出ABC 
    
    echo $c->abc;//这里输出ABC
    
     $b->abc="DEF"; 
    
    echo $c->abc;//这里输出DEF
    
    ?>
    

      

    引用,其实就是一个变量空间,赋予了多个操作名称,这些操作名称,都指向同一个操作空间,其中一个操作名称对其空间操作,其他操作名称得到的结果也会变化。

    引用的作用:

    一般来说,每次声明一个变量,其就会占用一定的空间。

    函数传参的方便,直接修改原有空间的内容,同时也减少中间变量的空间的开销。

     

    更多内容请访问

    八重樱:怎么从一名码农成为架构师的必看知识点:目录大全(持续更新)50W年薪挑战!

  • 相关阅读:
    Mycat分布式数据库&.NET链接mysql
    MySQL安装
    Apache 安装配置及开启PHP模块支持
    XSS MSMQ FASTDFS RABBITMQ
    json表单回填(表单反序列化回填值)
    解决80端口被占用
    Oracle for .net & ServiceStack.OrmLite
    MBTiles 离线地图演示
    Java网络编程TCP程序,服务器和客户机交互流程以及基本操作步骤。
    如何使用和理解java的反射机制
  • 原文地址:https://www.cnblogs.com/a609251438/p/12525271.html
Copyright © 2011-2022 走看看