PHP printf 函式基本語法
string printf ( string $format , $args1 , $args2 , $args3 , $arg4 , $arg5 ... )
printf 函式的小括號內第一個參數 $format 是原始格式化轉換字串,可能包含許多帶有百分比的格式化部分,可以設定即將帶入的字符,會格式化為哪一種格式,關於 $format 的參數可以參考 sprintf 函式上的參數表。接著有許多的 $args,即為要帶入 $format 字串的字符,可以有非常多個,printf 會依照順序帶入 $format 字串,並完成格式化,最後將格式化完成的新字串輸出於網頁。
PHP printf 函式範例一
<?php
$string = 'to';
$number = '5';
$format = 'Welcome %s Wibibi.%f is float of %u.';
printf($format,$string,$number,$number);
?>
以上範例輸出結果$string = 'to';
$number = '5';
$format = 'Welcome %s Wibibi.%f is float of %u.';
printf($format,$string,$number,$number);
?>
Welcome to Wibibi.5.000000 is float of 5.
範例的 $format 是包含 3 個 % 格式化符號的字串,透過 printf 函式,將 $string 與 $number 變數依序帶入至 $format 的百分比位置,並且格式化,第 1 個百分比寫成 %s,代表要將 $string 格式化為字串,第 2 個百分比寫成 %f 代表要將 $number 格式化為浮點數,第 3 個百分比寫成 %u,代表要將 $number 格式化為十進位的整數。PHP printf 函式範例二、控制浮點數小數位數
<?php
$number = '5';
$format = "%1\$.3f is float of %u.";
printf($format,$number,$number);
?>
以上範例輸出結果$number = '5';
$format = "%1\$.3f is float of %u.";
printf($format,$number,$number);
?>
5.000 is float of 5.
其實要控制浮點數的小數位數,僅需要一點小技巧,第一個是 $format 變數內容要用雙引號("")而不是單引號('')將字串包起來,第二個是在字串中,像範例這樣寫成「%1\$.3f」代表小數點後面保留三位,接著讓 printf 函式帶入 $number 並格式化即可。相關主題研究