深入浅析php中sprintf与printf函数的用法及区别
PHPsprintf()函数
把百分号(%)符号替换成一个作为参数进行传递的变量:
<?php $number=2; $str="Shanghai"; $txt=sprintf("Thereare%umillioncarsin%s.",$number,$str); echo$txt; ?>
定义和用法
sprintf()函数把格式化的字符串写入变量中。
arg1、arg2、++参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个%符号处,插入arg1,在第二个%符号处,插入arg2,依此类推。
注释:如果%符号多于arg参数,则您必须使用占位符。占位符位于%符号之后,由数字和"\$"组成。
语法
PHPprintf()函数
输出格式化的字符串:
<?php $number=9; $str="北京"; printf("在%s有%u百万辆自行车。",$str,$number); ?>
定义和用法
printf()函数输出格式化的字符串。
语法
printf(format,arg1,arg2,arg++)
下面是一个示例:四舍五入保留小数点后两位
<?php $num1=21; echosprintf("%0.2f",$num1)."<br/>";//输出21.00 $num2=16.3287; echosprintf("%0.2f",$num2)."<br/>";//输出16.33 $num3=32.12329; echosprintf("%0.2f",$num3)."<br/>";//输出32.12 ?>
解释下%0.2f的含义:
%表示起始字符
0表示空位用0填满
2表示小数点后必须占两位
f表示转换成浮点数
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%印出百分比符号,不转换。
b整数转成二进位。
c整数转成对应的ASCII字元。
d整数转成十进位。
f倍精确度数字转成浮点数。
o整数转成八进位。
s整数转成字串。
x整数转成小写十六进位。
X整数转成大写十六进位。
printf与sprintf的区别
1.printf函数:
intprintf(stringformat[,mixedargs[,mixed...]]) Producesoutputaccordingtoformat,whichisdescribedinthedocumentationforsprintf(). Returnsthelengthoftheoutputtedstring.
把文字格式化以后输出,如:
$name="hunte"; $age=25; printf("mynameis%s,age%d",$name,$age);
2.sprintf函数:
stringsprintf(stringformat[,mixedargs[,mixed...]]) Returnsastringproducedaccordingtotheformattingstringformat.
跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。
3.print函数:
是函数,可以返回一个值,只能有一个参数。
intprint(stringarg) Outputsarg.Returns1,always.