在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP/ 變量引用于類(lèi)屬性引用的問(wèn)題

變量引用于類(lèi)屬性引用的問(wèn)題

    $a = 1;
    function func( &$a  ){
        echo $a;
        $a = 100;
    }
    func($a);
    echo $a;
    
    class A{
        public $a = 10;
    }
    $obj = new A();
    func($obj->a);
    echo $obj->a;

兩次調(diào)用有什么區(qū)別?

回答
編輯回答
老梗

分開(kāi)講吧

 $a = 1;
    function func( &$a  ){
        echo $a;
        $a = 100;
    }
    func($a);
    echo $a;

這里傳值寫(xiě)的是&$a,php是默認(rèn)傳值傳輸,如果你寫(xiě)的是$a的話(huà),等于就是傳了個(gè)1進(jìn)去。不管里面a怎么變都不影響。echo出來(lái)還是1 1 但是傳 &$a的話(huà)等于把a(bǔ)的地址丟了進(jìn)去。于是方法內(nèi)部對(duì)a進(jìn)行的操作會(huì)影響a本身,最后echo出來(lái)就是1 100

 class A{
        public $a = 10;
    }
    $obj = new A();
    func($obj->a);
    echo $obj->a;

理解了上面以后這個(gè)反而就沒(méi)什么花頭了,僅僅只是建立了一個(gè)A的對(duì)象、然后一樣還是把A里面的a丟進(jìn)了方法——由于還是傳地址,所以出來(lái)的是10 100.

這段代碼其實(shí)主要展示的是&$a的影響范圍吧……其實(shí)2次調(diào)用并沒(méi)什么區(qū)別

2018年7月16日 13:18