您好,登錄后才能下訂單哦!
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.0 php > printf("printf type is %'u.1f",$a); printf type is 534.0 php > printf("printf type is %'u6.1f",$a); printf type is u534.0 php > printf("printf type is %'u10.1f",$a); printf type is uuuuu534.0 php > printf("printf type is %'u-10.1f",$a); printf type is 534.0uuuuu php > printf("printf type is %b",$a); printf type is 1000010110 php > printf("printf type is %o",$a); printf type is 1026 php > printf("printf type is %s",$a); printf type is 534 php > printf("printf type is %u",$a); printf type is 534 php > printf("printf type is %x",$a); printf type is 216 php > $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() 。這些變體函數接受兩個參數:格式字符串 和 參數數組, 而不是可變數量的參數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。