请 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
% - 文字百分号。没有参数是必需的。
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
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
1. sprintf是格式化输出,也就是按照你要的格式输出,类似模板2. 与print不同,sprintf并不会直接打印到屏幕,因此你可以用它给变量赋值。如 $s = sprintf(..................);
上面这句话中的数字是指的什么?
这是正常的写法
$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
可以看到对应位置的值发生了变化
于是可知:数字表示的是参数的序号