printf()函數優點在於可以格式化輸出!
格式如下:%['padding_character][-][width][.precision]type
所有的轉換說明都是以%開始,如果想打印一個%符號,必須用%%.
參數'padding_character是可選.它將被用來填充變量直至所指定的寬度.該參數的作用就在變量前面填充.默認的填充字符是一個空格,如果指定0或者空格,就不需要 ' 單引號作為前綴,其他字符就必須指定 ' 作為前綴.
參數 - 是可選.它指左對齊,默認是右對齊.
參數width是指被替換的變量的長度.
參數precision表示以小數點開始.它指明小數點後要顯示的位數.
參數type 是類型碼,請看下表:
類型 | 含義
b | 解釋為整數並作為二進制輸出.
c | 解釋為整數並作為字符表示輸出(ASCII碼).
d | 解釋為整數並作為整數輸出.
f | 解釋為雙精度並作為浮點數輸出.
o | 解釋為整數並作為八進制數輸出.
s | 解釋為字符串並為字符串輸出.
u | 解釋為整數並作為非指定小數輸出.
x | 解釋為整數並作為帶有小寫字母a-f的十六進制數輸出
X | 解釋為整數並作為帶有大寫字母A-F的十六進制數輸出
演示:
---------------------------------------------------------------------------------------------
<?php
$str = "0758 jian";
$strA = "A";
$strB = "B";
$num1 = 5;
$num2 = 5;
$num3 = 0.25;
$num4 = 3.2567;
$num5 = 8;
$num6 = 1.735;
$num7 = 16777215;
$num8 = 16777215;
printf("%2\$s %1\$s", $strA, $strB); // 2\$是指定參數位置
echo '<br />';
printf("填充: %'%10s", $str); //指定填充符為%字符串寬度為10
echo '<br />';
printf("二制制: %b", $num1);
echo '<br />';
printf("ASCII碼: %c", $num2);
echo '<br />';
printf("整數: %d", $num3);
echo '<br />';
printf("浮點數: %.2f", $num4);
echo '<br />';
printf("八進制: %o", $num5);
echo '<br />';
printf("字符串: %s", $str);
echo '<br />';
printf("非小數: %u", $num6);
echo '<br />';
printf("十六進制: %x", $num7);
echo '<br />';
printf("十六進制: %X", $num8);
?>
---------------------------------------------------------------------------------------------
輸出結果:
---------------------------------------------------------------------------------------------
B A
填充: %0758 jian
二制制: 101
ASCII碼:
整數: 0
浮點數: 3.26
八進制: 10
字符串: 0758 jian
非小數: 1
十六進制: ffffff
十六進制: FFFFFF