首頁 > 後端開發 > php教程 > 關於函數返回值的問題

關於函數返回值的問題

WBOY
發布: 2016-08-04 09:21:56
原創
841 人瀏覽過

對於函數返回值還是不是很懂下面這個例子裡面如果調用jj()的話直接打印出來一個1 為什麼還打印出來一個null呢這裡好像沒有用到函數返回值啊調用這個函數的話不就是執行一下把$ a印出來就好了嗎?為什麼還跟回傳值有關?

<code>    function jj(){
        $a=1;
        echo $a;
    }
    $b=jj();
    var_dump($b);</code>
登入後複製
登入後複製

回覆內容:

對於函數返回值還是不是很懂下面這個例子裡面如果調用jj()的話直接打印出來一個1 為什麼還打印出來一個null呢這裡好像沒有用到函數返回值啊調用這個函數的話不就是執行一下把$ a印出來就好了嗎?為什麼還跟回傳值有關?

<code>    function jj(){
        $a=1;
        echo $a;
    }
    $b=jj();
    var_dump($b);</code>
登入後複製
登入後複製

列印只是顯示在螢幕上,你要是使用這個值的話,必須用return返回,才能在別的地方接收到。所以這裡你的函數沒有回東西,只是印了1而已,所以變數b就沒得到任何值,所以為空。

因為你的函數沒有return語句,執行完畢以後回傳了null。
你的函數執行過程:

  1. $b = jj(); 呼叫jj() 給$a賦值, 印出$a, 沒有回傳(回傳為null)

  2. var_dump $b, $b被賦值jj()的回傳值, 所以是null

  3. 整個執行完成以後留下了列印的1($a的值), null($b的值)

<code>function jj(){
        $a=1;
        echo $a;
        return $a;
    }
    $b=jj();
    var_dump($b);</code>
登入後複製

如此估計就是你期望的輸出了

你這個jj函數是直接輸出了$a 並沒有return 所以$b為空

<code>$b=jj();//输出1 直接调用函数jj
var_dump($b);//输出null  打印函数?并没用return值

加了return之后的结果如下:
1
D:\WWW\demo\demo\demo.php:15:int 1
</code>
登入後複製

echo 為直接輸出, return 傳回呼叫它的位置

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板