91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中函數引用傳遞和返回的示例分析

發布時間:2021-04-06 11:32:02 來源:億速云 閱讀:185 作者:小新 欄目:編程語言

小編給大家分享一下php中函數引用傳遞和返回的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

php的引用(就是在變量或者函數、對象等前面加上&符號)

在PHP 中引用的意思是:不同的名字訪問同一個變量內容。
與C語言中的指針是有差別的.C語言中的指針里面存儲的是變量的內容,在內存中存放的地址。

1.變量的引用

PHP 的引用允許你用兩個變量來指向同一個內容

<?php
    $a = 'abc';
    $b = &$a;
    var_dump($a,$b);//均為'abc'
    $b = 123;
    var_dump($a,$b);//均為123

2.函數的引用傳遞(傳址調用)

<?php
    function test(&$a){
        $a = $a + 100;
    }
    $b = 1;
    test($b);
    var_dump($b);//101

這里$b傳遞給函數的其實是$b的變量內容所處的內存地址,通過在函數里改變$a的值 就可以改變$b的值

注意:

上面的“ test($b); ” 中的$b前面不要加 & 符號,但是在函數“call_user_func_array”中,若要引用傳參,就得需要 & 符號

<?php
    function test(&$a){
        $a = $a + 10;
    }
    $b = 1;
    call_user_func_array('test',array(&$b));
    var_dump($b);//11

3.函數的引用返回

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
$a=5;
$a=test();//這條語句會輸出 $b的值 為6

通過這種方式$a=test();得到的其實不是函數的引用返回,這跟普通的函數調用沒有區別。$a=test()方式調用函數,只是將函數的值賦給$a而已,而$a做任何改變都不會影響到函數中的$b而通過$a=&test()方式調用函數呢, 他的作用是將return $b中的$b變量的內存地址與$a變量的內存地址指向了同一個地方。

這里是為了讓大家理解函數的引用返回才使用靜態變量的,其實函數的引用返回多用在對象中 :

class talker{
private $data = 'Hi';
    public function &get(){
        return $this->data;
    }
    public function out(){
        echo $this->data;
    }
}
$aa = new talker();
$d = &$aa->get();
$aa->out();
$d = 'How';
$aa->out();
$d = 'Are';
$aa->out();
$d = 'You';
$aa->out(); 
//輸出為HiHowAreYou

以上是“php中函數引用傳遞和返回的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

莫力| 岳普湖县| 南昌县| 天水市| 广丰县| 泰州市| 丹阳市| 岳普湖县| 金阳县| 临澧县| 奉贤区| 墨脱县| 宁明县| 图木舒克市| 台安县| 桃源县| 佛坪县| 新民市| 武汉市| 通海县| 河北省| 左权县| 安达市| 新昌县| 苏尼特左旗| 辰溪县| 武鸣县| 天柱县| 通城县| 缙云县| 凉城县| 两当县| 兴宁市| 呼和浩特市| 平顺县| 彝良县| 都昌县| 富蕴县| 长葛市| 策勒县| 巴林右旗|