php中指出列印輸出的函數有很多 最常見的就是 echo print() printf() spintf() 這幾個了。
echo 和 print() 功能相同,但是 print( )具有執行成功與否的傳回值 (true 和 false)。
使用函數 printf() 和 sprintf() 還可以實現一些更為複雜的格式化輸出。 這兩個的工作方式基本相同,只是printf() 函數是講一個格式化的字串輸出到瀏覽器中,而 sprintf() 函數是返回一個格式化過的字串。
printf() 基本用法:
echo "you have $total money";
要使用printf() 函數得到相同的結果,就應該使用如下語句:
printf ("you have %s money", $total );
格式化字串中的%s 是轉換標記。它的意思是使用後面的變數來替換自己。 在這個例子中它會被解釋成字串$total 的代替。 如果 $total 變數中的值是 25.6,以上兩種方法都將列印為25.6 。
printf() 的優點在於,可以使用更有用的轉換說明來指定 $total 為一個浮點數(它的後面應該有兩位小數點)。 如下所示:
printf("you hava %.2f money ", $total );
經過這行代碼格式化處理,儲存在 $total 中的25.6 將列印為 25.60 。(但是並不影響變數原始的值)
可以在格式化字串中使用多個轉換標記。 如果有n個轉換標記,那麼在格式化字串後面就應該帶有n個參數。 每個轉換標記預設將按照給出的順序依次重新格式化。
printf ("you have %.2f money , but shopping %.2f RMB ", $total , $total_shopping );
在這裡,第一個轉換標記將使用$total 的值, 第二個轉換標記將使用變數 $total_shopping 的值。
printf() %轉換標記的文法格式:
%[ 'padding_character] [ - ] [ width ] [ .precision ] type //中括弧內的參數為選擇性參數
所有的轉換標記都以% 開頭。
參數padding_character 將被用來填充變數直至所指定的寬度。該參數的作用就像使用計算機那樣在數字前面加零。 預設填充字元是一個空格,如果指定了一個空格或者0 ,就不需要使用 ‘ 單引號作為首碼。 對於任何其他填充字元,必須指定 ’ 單引號首碼。
字元 - 是可選的。它指明該域中的資料的對齊, 該選項預設留空即靠右對齊,設定了 - 符號,那麼就是靠左對齊(填充輸入鍵台到右邊不夠的位置)。
參數 width 是可選的,它告訴printf() 函數在這裡將顯示的字元寬度(按字元計算)。
參數 precision 必須是以一個小數點開始。 它用於指明小數點後的精確位元。
轉換標記最後的一部分是一個類型碼。 其支援的所有類型如下表所示:
| 代碼類型 |
意義 |
| b |
解釋為整數並作為位元輸出 |
| c |
解釋為整數並作為字元輸出 |
| d |
解釋為整數並作為小數輸出 |
| f |
解釋為雙精確度並作為浮點數輸出 |
| o |
解釋為整數並作為八位元輸出 |
| s |
解釋為字串並作為字串輸出 |
| u |
解釋為整數並作為非指定小數輸出 |
| x |
解釋為整數並作為帶有小寫字母a~f的十六進位數輸出 |
| X |
解釋為整數並作為帶有大寫字母A~F的十六進位數輸出 |
用法樣本:
php > $a = 534 ;php > printf("printf type is %.1f",$a);printf type is 534.0php > printf("printf type is %'u.1f",$a);printf type is 534.0php > printf("printf type is %'u6.1f",$a);printf type is u534.0php > printf("printf type is %'u10.1f",$a);printf type is uuuuu534.0php > printf("printf type is %'u-10.1f",$a);printf type is 534.0uuuuuphp > printf("printf type is %b",$a);printf type is 1000010110php > printf("printf type is %o",$a);printf type is 1026php > printf("printf type is %s",$a);printf type is 534php > printf("printf type is %u",$a);printf type is 534php > printf("printf type is %x",$a);printf type is 216php > $a = 539;php > printf("printf type is %x",$a);printf type is 21b
當在類型轉碼中使用 printf() 函數時,你可以使用帶序號的參數方式,這就意味著參數的順序並不一定要與轉換標記中的順序相同。 例如:
printf ("you have %2\$.2f money , but shopping %1\$.2f RMB ", $total , $total_shopping );
只要直接在 % 符號後添加參數的位置,並且以 $ 符號為結束 。 在這個例子中,2\$ 意味著用列表中的第二個參數替換。這個方法也可以在重複參數中使用。
php > $a = 539;php > $b = 38;php > printf("you have %2\$.2f money , but shopping %1\$.2f RMB! ", $a,$b);you have 38.00 money , but shopping 539.00 RMB! php >
這些函數還有兩種可替換版本,分別是 vprintf() 和 vsprintf() 。這些變體函數接受兩個參數:格式字串 和 參數數組, 而不是可變數量的參數。