php輸出echo、print、print_r、printf、sprintf、var_dump等函數(shù)的區(qū)別比較
echo,語言結(jié)構(gòu),非函數(shù),無括號時可以多個值,用逗號分割。整形和字符串,布爾類型會轉(zhuǎn)換成1或空,無返回值(推薦學(xué)習(xí):PHP編程從入門到精通)
echo() 實際上不是一個函數(shù),是php語句,因此您無需對其使用括號。不過,如果您希望向 echo() 傳遞一個以上的參數(shù),那么使用括號會發(fā)生解析錯誤。而且echo是返回void的,并不返回值,所以不能使用它來賦值。
print,語言結(jié)構(gòu),非函數(shù),只能一個參數(shù)值,比echo慢。打印類型同echo,無返回值
print() 和 echo() 用法一樣,但是echo速度會比print快一點點。實際上它也不是一個函數(shù),因此您無需對其使用括號。
print_r,可以輸出整形、字符串、數(shù)組、對象,第二個參數(shù)設(shè)定為true,將打印內(nèi)容返回
print_r函數(shù)打印關(guān)于變量的易于理解的信息。
mixed print_r ( mixed $expression [, bool return ] )
如果變量是string , integer or float , 將會直接輸出其值,如果變量是一個數(shù)組,則會輸出一個格式化后的數(shù)組,便于閱讀,也就是有key和value對應(yīng)的那種格式。對于object對象類同。
print_r有兩個參數(shù),第一個是變量,第二個可設(shè)為true,如果設(shè)為true,則會返回字符串,否則返回布爾值TRUE。
sprintf,把格式化的字符串寫入變量中,返回格式化好的字符串
printf,輸出格式化的字符串,無返回值
fprintf,把格式化的字符串寫入指定的輸出流(例如:文件或數(shù)據(jù)庫),無返回值
vfprintf,把格式化的字符串寫到指定的輸出流(例如:文件或數(shù)據(jù)庫),參數(shù)是數(shù)組,無返回值
vprintf,輸出格式化的字符串,參數(shù)位于數(shù)組中,無返回值
vsprintf,把格式化字符串寫入變量中,參數(shù)位于數(shù)組中,返回格式化的字符串
var_dump,可以打印多個變量及其類型,中間用逗號隔開,可以打印布爾值,無返回值
var_export,返回合法的php代碼,可以打印布爾值 第二個參數(shù)設(shè)定為true,可以將打印內(nèi)容返回給變量