函數sprintf()作用是什么


我的PHP手冊中sprintf()的說明全是英文,我看不懂。有沒有大俠能把該函數的作用(尤其是參數format)詳細地說一下?

9 个解决方案

#1


請 google 翻譯了一下
% - 文字百分號。沒有參數​​是必需的。
b - 該參數被視為一個整數,並作為一個二進制數。
c - 接收參數被視為一個整數,並作為字符與ASCII值。
d - 該參數被視為一個整數,作為一個(符號)十進制數。
e - 該參數被視為科學記數法(比如1.5e +3 ) 。
u - 該參數被視為一個整數,並作為一個無符號十進制數。
f - 該參數被視為浮點,以及作為一個浮點數(語言環境感知) 。
F - 該參數被視為浮點,以及作為一個浮點數(非語言環境感知) 。從PHP 4.3.10和PHP 5.0.3 。
o - 該參數被視為一個整數,並作為一個八進制數。
s - 該參數被視為並作為一個字符串。
x - 將參數被視為一個整數,作為一個十六進制數(小寫字母) 。
X- 將參數被視為一個整數,作為一個十六進制數(用大寫字母) 。

例:
echo sprintf('%b %c %d %u %e %f %F %o %s %x %X', 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65);
1000001 A 65 65 6.500000e+1 65.000000 65.000000 101 65 41 41

#2


是不是只有浮點型才會有“%.2f”的參數format?

#3


是的
%.2f 表示按 2 位小數格式化

整數自然是沒有小數的

#4


sprintf() 函數把格式化的字符串寫寫入一個變量中。
sprintf(format,arg1,arg2,arg++)
參數
format 必需。轉換格式。
arg1 必需。規定插到 format 字符串中第一個 % 符號處的參數。
arg2 可選。規定插到 format 字符串中第二個 % 符號處的參數。
arg++ 可選。規定插到 format 字符串中第三、四等等 % 符號處的參數。


<?php
$str = "Hello";
$number = 123;
$txt = sprintf("%s world. Day number %u",$str,$number);
echo $txt;
?>

輸出:
Hello world. Day number 123

#5


還有沒有其他人補充了?

#6


還有什么好補充的?
1. sprintf是 格式化輸出,也就是按照你要的格式輸出,類似模板

2. 與print不同,sprintf並不會直接打印到屏幕,因此你可以用它給變量賦值。如 $s = sprintf(..................);

#7


w3school里sprintf()部分的一句話:如果 % 符號多於 arg 參數,則您必須使用占位符。占位符插到 % 符號后面,由數字和 "\$" 組成。
上面這句話中的數字是指的什么?

#8


這是 php 特有的一個方式,使用的並不多(他給的例子已經說得很清楚了)
這是正常的寫法
$a = 123;
$b = 1111;
$txt = sprintf("%.2f  %u",$a, $b);
echo $txt;
123.00  1111
當寫作
$txt = sprintf("%2\$.2f  %1\$u",$a, $b);
echo $txt;
1111.00  123
可以看到對應位置的值發生了變化
於是可知:數字表示的是參數的序號

#9


非常感謝,結帖。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com