日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

PHP中的輸出:echo、print、printf、sprintf、print_r和var_dump

 硬核項目經(jīng)理 2021-05-31

大家在面試中,經(jīng)常會被問到的問題:

請簡要說明PHP的打印方式都有哪些?

或者直接點(diǎn)問:

請說明echo、print、print_r的區(qū)別

看著很簡單,一般會出現(xiàn)在初中級的筆試題中。但是要真正說明白這些語言結(jié)構(gòu)或者函數(shù)也不是那么簡單的事情。今天我們就來好好看看這些打印輸出相關(guān)的內(nèi)容。

echo

最基礎(chǔ)的輸出語句,不是函數(shù)是語言結(jié)構(gòu),不需要括號??梢允褂脜?shù)列表,用逗號分隔。但如果加了括號就不能用逗號分隔著輸出了。沒有返回值。

echo 'fullstackpm'; // 正常輸出:fullstackpm
echo 'fullstackpm', ' is ', 'Good!'; // 正常輸出:fullstackpm is Good!
echo ('fullstackpm'); // 正常輸出:fullstackpm
echo ('fullstackpm', ' is ', 'Good!'); // 報錯了

print

基本和echo一樣,但是不支持參數(shù)列表,有返回值。返回值永遠(yuǎn)是1。

因?yàn)橛蟹祷刂担韵鄬碚f效率不如echo

print 'fullstackpm'; // 正常輸出:fullstackpm
print 'fullstackpm', ' is ', 'Good!'; // 錯誤
$r = print ('fullstackpm'); // 正常輸出:fullstackpm
print $r; // 輸出1

printf和sprintf

兩個很高大上的函數(shù),可以格式化輸出字符串。用%標(biāo)明占位符,后面的參數(shù)對應(yīng)進(jìn)行占位符的替換。printf和sprintf的區(qū)別就是前者直接進(jìn)行了輸出,而后者是將字符串進(jìn)行了函數(shù)返回。請看實(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是浮點(diǎn)數(shù),%%是輸出%本身,其他還有許多類型可以查看相關(guān)文檔。另外還有類似的幾個:

  • vprintf,他的第二個參數(shù)是一個數(shù)組,不是可變長度的參數(shù)。

  • sscanf,對于一些特殊字符處理方式不同。

  • fscanf,從文檔中讀取并進(jìn)行格式化。

print_r

非常常用的一個函數(shù),可以格式化的輸出數(shù)組或?qū)ο蟆W⒁獾诙€參數(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); // 此處不會輸出
echo $s;
// 輸出
// 注意,輸出流不在ob_start()中,測試本段請不要有其他任何輸出
/**
Array
(
[0] => a
[1] => b
[3] => c
[show] => d
)
*/

var_dump和var_exports

var_dump也是非常常用的一個函數(shù),用來顯示結(jié)構(gòu)信息,包括類型與值,數(shù)組對象都會展開,用縮進(jìn)表示層次。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',
)
*/

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多