假設下面的代碼:回聲和打印聲明
<?php
echo 'hello' . print 123;
執行。
我期望的是hello123
,但實際輸出是123hello1
。
爲什麼123最先?爲什麼輸出包含1
?
(我也試圖把一對括號周圍hello
,但還是同樣的結果。)
假設下面的代碼:回聲和打印聲明
<?php
echo 'hello' . print 123;
執行。
我期望的是hello123
,但實際輸出是123hello1
。
爲什麼123最先?爲什麼輸出包含1
?
(我也試圖把一對括號周圍hello
,但還是同樣的結果。)
echo 'hello' . print 123;
這樣可以將'hello'
與返回值的print 123
。在print
返回的值1
,它輸出123
。級聯的hello1
是輸出之後由echo
。因此,評價是:
123
1
'hello'
和1
hello1
。爲什麼123最先?
可能是因爲print語句首先被執行並且應該打印'123'。
爲什麼輸出結尾包含1?
由於「打印」返回1,你的回聲聲明回聲的那個「1」
的print的返回值始終是。
你的代碼中有一個級聯點字符:
'hello' . print 123;
因此所有零件都連接前評估:
然後echo會顯示評估字符串:
echo 'hello'.'1' // '1' is the return value of print
打印在字符串上的最後一個字符串是123hello1
。
對不起。我不是要求解決這個問題。我想要的是解釋。謝謝你的幫助 – sc1013 2013-04-29 13:44:25