對於函數返回值還是不是很懂下面這個例子裡面如果調用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。
你的函數執行過程:
$b = jj(); 呼叫jj() 給$a賦值, 印出$a, 沒有回傳(回傳為null)
var_dump $b, $b被賦值jj()的回傳值, 所以是null
整個執行完成以後留下了列印的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 傳回呼叫它的位置