php的一道面試題

來源:互聯網
上載者:User
function myfunc($a){    echo $a + 10;}$val = 10;echo "myfunc($val)=".myfunc($val); //20myfunc(10)

不是應該輸出myfunc(10)=20嗎?

回複內容:

function myfunc($a){    echo $a + 10;}$val = 10;echo "myfunc($val)=".myfunc($val); //20myfunc(10)

不是應該輸出myfunc(10)=20嗎?

經過測試:
LZ這道面試題主要是考察執行順序,具體解答過程如下:
a.echo "myfunc($val)=";
單獨這樣的時候,輸出結果為:myfunc(10)= ,說明雙引號中只不解析函數,只解析變數
b.echo "myfunc($val)=".myfunc($val);
拼接上後面的函數後,結果為:20myfunc(10)= ,說明後面的函數先執行輸出了20。然後執行了echo語句。

總結:第一步執行後面的函數輸出了20,然後在執行echo語句。故結果為:20myfunc(10)=

笑話… 你的 myfunc 的輸出是 echo 又不是 return .... 不要異想天開好麼… 函數先執行然後再是外部的 echo 執行啊……

函數myfunc裡面直接輸出裡結果,不是return

你應該是 return $a + 10; 吧

在函數裡 echo 是什麼鬼

為啥=沒了 我感覺應該是 20mytest(10)=,前面那個20應該是後面那段的輸出。

echo 的時候是先把 echo 後面的值計算出來之後才把最終結果輸出的
計算的過程執行了 myfunc 這個函數,而 myfunc 裡面有一個 echo 了所以就先輸出了 20
另外,函數裡面要有 return 才會傳回值

function myfunc($a){    return $a + 10;}$val = 10;echo "myfunc($val)=".myfunc($val);

function myfunc($a){    echo $a + 10;    echo "\n";}$val = 10;echo "myfunc($val)=".myfunc($val); //20myfunc(10)

這樣來看,就明確多了。

我也算是看明白了, 你在函數裡面直接echo 。好好看清楚代碼,你就明白了

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.