PHP中的輸出echo、print、printf、sprintf、print_r和var_dump的示例代碼
大家在面試中,經(jīng)常會(huì)被問(wèn)到的問(wèn)題:
請(qǐng)簡(jiǎn)要說(shuō)明PHP的打印方式都有哪些?
或者直接點(diǎn)問(wèn):
請(qǐng)說(shuō)明echo、print、print_r的區(qū)別
看著很簡(jiǎn)單,一般會(huì)出現(xiàn)在初中級(jí)的筆試題中。但是要真正說(shuō)明白這些語(yǔ)言結(jié)構(gòu)或者函數(shù)也不是那么簡(jiǎn)單的事情。今天我們就來(lái)好好看看這些打印輸出相關(guān)的內(nèi)容。
echo
最基礎(chǔ)的輸出語(yǔ)句,不是函數(shù)是語(yǔ)言結(jié)構(gòu),不需要括號(hào)。可以使用參數(shù)列表,用逗號(hào)分隔。但如果加了括號(hào)就不能用逗號(hào)分隔著輸出了。沒(méi)有返回值。
echo 'fullstackpm'; // 正常輸出:fullstackpm
echo 'fullstackpm', ' is ', 'Good!'; // 正常輸出:fullstackpm is Good!
echo ('fullstackpm'); // 正常輸出:fullstackpm
echo ('fullstackpm', ' is ', 'Good!'); // 報(bào)錯(cuò)了
基本和echo一樣,但是不支持參數(shù)列表,有返回值。返回值永遠(yuǎn)是1。
因?yàn)橛蟹祷刂担韵鄬?duì)來(lái)說(shuō)效率不如echo
print 'fullstackpm'; // 正常輸出:fullstackpm
print 'fullstackpm', ' is ', 'Good!'; // 錯(cuò)誤
$r = print ('fullstackpm'); // 正常輸出:fullstackpm
print $r; // 輸出1
printf和sprintf
兩個(gè)很高大上的函數(shù),可以格式化輸出字符串。用%標(biāo)明占位符,后面的參數(shù)對(duì)應(yīng)進(jìn)行占位符的替換。printf和sprintf的區(qū)別就是前者直接進(jìn)行了輸出,而后者是將字符串進(jìn)行了函數(shù)返回。請(qǐng)看實(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); // 這里不會(huì)輸出 print $s; // 輸出:My name is WoW, I'm 12 years old.
你最少要記住的,%s代表字符串,%d代表數(shù)字,%f是浮點(diǎn)數(shù),%%是輸出%本身,其他還有許多類(lèi)型可以查看相關(guān)文檔。另外還有類(lèi)似的幾個(gè):
- vprintf,他的第二個(gè)參數(shù)是一個(gè)數(shù)組,不是可變長(zhǎng)度的參數(shù)。
- sscanf,對(duì)于一些特殊字符處理方式不同。
- fscanf,從文檔中讀取并進(jìn)行格式化。
print_r
非常常用的一個(gè)函數(shù),可以格式化的輸出數(shù)組或?qū)ο?。注意第二個(gè)參數(shù)設(shè)置為true,可以不直接輸出而是進(jìn)行函數(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); // 此處不會(huì)輸出
echo $s;
// 輸出
// 注意,輸出流不在ob_start()中,測(cè)試本段請(qǐng)不要有其他任何輸出
/**
Array
(
[0] => a
[1] => b
[3] => c
[show] => d
)
*/
var_dump和var_exports
var_dump也是非常常用的一個(gè)函數(shù),用來(lái)顯示結(jié)構(gòu)信息,包括類(lèi)型與值,數(shù)組對(duì)象都會(huì)展開(kāi),用縮進(jìn)表示層次。var_exports與之不同的地方在于var_exports返回的內(nèi)容是正常的PHP代碼,可以直接使用,并且有和print_r類(lèi)似的第二個(gè)return參數(shù),作用也類(lèi)似。
$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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php PATH_SEPARATOR判斷當(dāng)前服務(wù)器系統(tǒng)類(lèi)型實(shí)例
這篇文章主要介紹了php PATH_SEPARATOR判斷當(dāng)前服務(wù)器系統(tǒng)類(lèi)型實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10
thinkPHP內(nèi)置字符串截取函數(shù)用法詳解
這篇文章主要介紹了thinkPHP內(nèi)置字符串截取函數(shù)用法,結(jié)合實(shí)例形式分析了thinkPHP內(nèi)置的字符串截取函數(shù)功能與具體使用方法,以及針對(duì)無(wú)法添加省略號(hào)的源碼修改技巧,需要的朋友可以參考下2016-11-11
使用php重新實(shí)現(xiàn)PHP腳本引擎內(nèi)置函數(shù)
使用php重新實(shí)現(xiàn)PHP腳本引擎內(nèi)置函數(shù)...2007-03-03
phpstudy2018 訪問(wèn)目錄服務(wù)權(quán)限問(wèn)題
今天小編在更新phpstudy2018,安裝后訪問(wèn)路徑出現(xiàn),下面通過(guò)本文給大家簡(jiǎn)單介紹下,感興趣的朋友跟隨腳本之家小編一起看看吧2018-03-03
destoon公司主頁(yè)模板風(fēng)格的添加方法
這篇文章主要介紹了destoon公司主頁(yè)模板風(fēng)格的添加方法,需要的朋友可以參考下2014-06-06
TP5框架簡(jiǎn)單登錄功能實(shí)現(xiàn)方法示例
這篇文章主要介紹了TP5框架簡(jiǎn)單登錄功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP5框架登錄功能控制器、視圖、登錄驗(yàn)證等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
Symfony2框架創(chuàng)建項(xiàng)目與模板設(shè)置實(shí)例詳解
這篇文章主要介紹了Symfony2框架創(chuàng)建項(xiàng)目與模板設(shè)置的方法,結(jié)合實(shí)例形式詳細(xì)分析了Symfony2框架的具體步驟與詳細(xì)實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-03-03
PHP使用fopen與file_get_contents讀取文件實(shí)例分享
這篇文章主要介紹了PHP使用fopen與file_get_contents讀取文件實(shí)例分享的相關(guān)資料,需要的朋友可以參考下2016-03-03

