2018年1月17日 星期三

php中echo、print、print_r、var_dump、var_export、printf、sprintf區別

來源
歸納:
 echoprintprint_rvar_dumpvar_export
只能輸出一個值VV V
用逗號可輸出多個值V  V 
可輸出數組與對象  VVV
返回值結果voidintboolvoidmixed
輸出true布爾值結果111truetrue
輸出false布爾值結果為空為空為空falsefalse
輸出數組結果  鍵+數值鍵+數值+類型+長度鍵+數值
用途輸出一個或多個字串輸出字串列印關於變數的易於理解的資訊列印變數的相關資訊輸出或返回一個變數的字串表示

(1) print和echo是語言結構,echo輸出多個值,多個值之間用逗號分隔,無返回值;print只能輸出一個值,有返回值。echo和print輸出整型和字符串,沒法打印布爾型,如果true,打印1,false打印為空。

(2) print_r()除了輸出整型和字符串,還可以輸出數組和對象,數組和對象使用鍵值對形式表示,數組時候array(鍵值對形式);對象時候Object(鍵值對形式) ;沒法打印布爾型,如果true,打印1,false和NULL打印為空。

(3) var_dump()判斷變量的類型與長度,並輸出變量的數值。如果是數組和對象,將遞歸展開值,通過縮進顯示其結構。能夠打印布爾和NULL。

(4) var_export()和var_dump()類似,其返回合法的php代碼,其返回值可以賦值給php變量。

(5) var_dump()可以打印多個變量,中間用逗號隔開;print_r()和var_export()打印一個變量,第二個參數設定為true,將打印內容返回。

(6)、sprintf和printf函數都是用來格式化操作字符串
語法:
printf的語法格式為:int printf( string$format[, mixed$args[, mixed$...]] )
sprintf的語法格式為:string sprintf( string$format[, mixed$args[, mixed$...]] ) 
差異:

  • printf函數可以直接將格式化之後的字符串輸出,而sprintf函數需要使用echo方法將格式化後的字符串輸出。
  • printf函數的返回值為int類型,表示列印出來字符串的字符數量,而sprintf函數的返回值為一個字符串。

 注:

(1)ech​​o、print語言結構,非函數,能打印整型和字符串。

(2)print_r()和var_export()打印整型、字符串外,還能打印數組、對象,以鍵值對形式打印數組、對象。var_export()還可打印布爾值。

(3)var_export()在第二個參數設置true,不會打印變量,而是將其以字符串形式返回,返回值可以賦值給php變量。

(4)var_dump()除了打印整型、字符串、數組、對象,還能​​打印布爾型。而且是輸出變量類型、長度和值。


沒有留言: