2014-01-08 51 views
3

我這樣編碼。PHP函數有點奇怪

<?php 
function get_argument($arg){ 
    return $arg; 
} 
echo print get_argument(33); 
?> 

另存爲php擴展名文件。 然後在Chrome中執行它。我希望它打印出數「33」

但它告訴我,「331」

有點怪我。因此,我改變,而不是33

它打印出「341」

值34,所以我測試一次。

再插入兩個這樣的代碼。

echo get_argument(33); 
print get_argument(33); 

他們都打印出相同的號碼,這是 '33'

有什麼區別?是什麼導致了一點,但是結果很大?

+1

'echo'和'print'都輸出你的參數。停止使用兩者。 –

+0

爲什麼你在回聲裏使用print? – user2936213

+0

這只是一個實驗:-) – csyouk

回答

-2

我不知道爲什麼會發生,但嘗試返回整數

function get_argument($arg){ 
    return intval($arg); 
} 
+0

不是答案 - 請參閱'print'上的PHP參考文獻 – 2014-01-08 13:17:59

6

因爲當你寫echo print get_argument(33);,它會執行打印第一,所以打印會寫33

但是,打印將返回1,然後通過回顯打印

+1

謝謝!我明白! – csyouk

1

這是因爲您使用的是echo和print,所以只能同時打印一個。

<?php 
    function get_argument($arg){ 
    return $arg; 
    } 
    print get_argument(33); 
?> 
3

當鍵入

echo print get_argument(33); 

它首先打印的get_argument(33)爲33的結果,然後相呼應的print get_argument(33)爲真其結果是1。

1

在此命令回聲打印get_argument (33):你是2輸出第一個是: print get_argument(33)

第二個是echo;

echo將返回打印功能的結果; 1是打印功能的結果。