PHP中的輸出echo、print、printf、sprintf、print_r和var_dump的示例代碼
大家在面試中,經(jīng)常會被問到的問題:
請簡要說明PHP的打印方式都有哪些?
或者直接點問:
請說明echo、print、print_r的區(qū)別
看著很簡單,一般會出現(xiàn)在初中級的筆試題中。但是要真正說明白這些語言結(jié)構(gòu)或者函數(shù)也不是那么簡單的事情。今天我們就來好好看看這些打印輸出相關(guān)的內(nèi)容。
echo
最基礎(chǔ)的輸出語句,不是函數(shù)是語言結(jié)構(gòu),不需要括號。可以使用參數(shù)列表,用逗號分隔。但如果加了括號就不能用逗號分隔著輸出了。沒有返回值。
echo ’fullstackpm’; // 正常輸出:fullstackpmecho ’fullstackpm’, ’ is ’, ’Good!’; // 正常輸出:fullstackpm is Good!echo (’fullstackpm’); // 正常輸出:fullstackpmecho (’fullstackpm’, ’ is ’, ’Good!’); // 報錯了
基本和echo一樣,但是不支持參數(shù)列表,有返回值。返回值永遠是1。
因為有返回值,所以相對來說效率不如echo
print ’fullstackpm’; // 正常輸出:fullstackpmprint ’fullstackpm’, ’ is ’, ’Good!’; // 錯誤$r = print (’fullstackpm’); // 正常輸出:fullstackpmprint $r; // 輸出1
printf和sprintf
兩個很高大上的函數(shù),可以格式化輸出字符串。用%標明占位符,后面的參數(shù)對應進行占位符的替換。printf和sprintf的區(qū)別就是前者直接進行了輸出,而后者是將字符串進行了函數(shù)返回。請看實例。
$str = ’My name is %s, I’m %d years old.’;printf($str, ’fullstackpm’, 1002); // 直接輸出:My name is fullstackpm, I’m 1002 years old.$s = sprintf($str, ’WoW’, 12); // 這里不會輸出print $s; // 輸出:My name is WoW, I’m 12 years old.
你最少要記住的,%s代表字符串,%d代表數(shù)字,%f是浮點數(shù),%%是輸出%本身,其他還有許多類型可以查看相關(guān)文檔。另外還有類似的幾個:
vprintf,他的第二個參數(shù)是一個數(shù)組,不是可變長度的參數(shù)。 sscanf,對于一些特殊字符處理方式不同。 fscanf,從文檔中讀取并進行格式化。print_r
非常常用的一個函數(shù),可以格式化的輸出數(shù)組或?qū)ο?。注意第二個參數(shù)設(shè)置為true,可以不直接輸出而是進行函數(shù)返回。
$str = [ 'a', 1 => 'b', '3' => 'c', 'show'=>’d’];print_r($str)// 輸出/** Array ( [0] => a [1] => b [3] => c [show] => d )*/$s = print_r($str, true); // 此處不會輸出echo $s;// 輸出// 注意,輸出流不在ob_start()中,測試本段請不要有其他任何輸出/** Array ( [0] => a [1] => b [3] => c [show] => d )*/
var_dump和var_exports
var_dump也是非常常用的一個函數(shù),用來顯示結(jié)構(gòu)信息,包括類型與值,數(shù)組對象都會展開,用縮進表示層次。var_exports與之不同的地方在于var_exports返回的內(nèi)容是正常的PHP代碼,可以直接使用,并且有和print_r類似的第二個return參數(shù),作用也類似。
$str = [ 'a', 1 => 'b', '3' => 'c', 'show'=>’d’];var_dump($str);// 輸出/** array(4) { [0] => string(1) 'a' [1] => string(1) 'b' [3] => string(1) 'c' ’show’ => string(1) 'd' }*/var_export($str);// 輸出/** array ( 0 => ’a’, 1 => ’b’, 3 => ’c’, ’show’ => ’d’, )*/
到此這篇關(guān)于PHP中的輸出echo、print、printf、sprintf、print_r和var_dump的示例代碼的文章就介紹到這了,更多相關(guān)PHP輸出echo、print、printf、sprintf、print_r和var_dump內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
