PHP 字符串 sprintf() 函数

17 Mar 2025 | 5 分钟阅读

sprintf() 是 PHP 的内置函数,它将格式化后的字符串写入变量。它返回一个格式化后的字符串。PHP 4 及以上版本支持 sprintf() 函数。

sprintf() 函数与 printf() 函数类似,它们之间唯一的区别是 sprint() 将输出保存到字符串中,而不是像 printf() 函数那样在浏览器上显示格式化后的消息。

注意: sprintf() 可以与 echo 一起使用。sprintf() 函数返回的格式化字符串由 echo 在浏览器上打印,而 printf() 直接将输出显示在浏览器上。

语法

sprintf() 的语法如下

这里的 arg1, arg2, arg3 等是 sprintf() 的参数。这些参数将逐个插入到主字符串中的百分号 (%) 处。在每个 % 符号处,参数将逐个插入。

参数

format (必需)

此参数是必需的,它指定字符串并描述如何格式化其中的变量。在这种情况下,除了 % 之外的所有简单字符都会直接复制到结果字符串中,而带有 % 符号的字符会获取其自己的参数。可能的格式值为

说明符

参数描述
%%返回一个百分号 (%)。
%b参数作为二进制数表示。
%c参数被视为整数,并表示为具有该 ASCII 值的字符。
%d参数被视为正整数,并表示为十进制数。
%e科学计数法(小写 e),例如 1.2e+2。精度说明符指定要打印的小数点后的位数。
%E与 e 说明符类似,但科学计数法为大写 e,例如 1.2E+2。
%u参数被视为整数,并表示为无符号整数。
%f浮点数(本地化感知)
%F浮点数(非本地化感知)
%g这是一个通用格式。
%G与 g 说明符类似,但它使用 E 和 F。
%o表示为八进制数。
%s参数被视为字符串并表示为字符串。
%x表示为带小写字母的十六进制数。
%X它也表示为带大写字母的十六进制数。

注意: c 类型说明符会忽略宽度和填充。

类型处理

类型说明符
strings
整数d, u, c, o, x, X, b
doubleG, g, E, e, F, f

还存在一些额外的格式值,它们位于百分号 (%) 和字母之间。(例如:%.2f)

这些额外的格式值列在下面

标志

旗帜描述
-在给定字段内左对齐,默认右对齐。
+在数字前面加上 +ve 和 -ve 符号。默认情况下,负号仅放在负数前面。
(空格)这是默认设置,它会用空格填充结果。
0仅用零左填充数字,对于 s 说明符,它也可以用零右填充。
'(char)用指定的字符填充结果。

返回值

sprint() 函数返回格式化后的字符串。

支持版本

此函数支持PHP 4 及以上版本。

示例

下面提供了一些示例来学习 sprintf() 函数的实际实现。

示例 1: 简单示例

输出

It is the basic example of PHP String function.

示例 2: 变量声明

输出

This is the 1st example of the sprintf function.
This function works with echo.

示例 3: 参数交换

让我们看完整的示例 3 来理解参数交换的概念。

输出

There are 54 students in PHP training batch in the 2018 year.

在这里,如果我们交换格式字符串中占位符的顺序,那将给我们带来麻烦。它与代码中的参数顺序不匹配。因此,占位符与参数顺序不匹配。让我们看下面的代码-

输出

There are 0 students in 54 batch in the 2018 year

所以,如果我们想保持代码不变,并想正确地指示占位符引用哪个参数,那么可以按以下方式编写代码-

输出

现在,输出与原始输出相同。

There are 54 students in PHP training batch in the 2018 year

注意: 在这种情况下,我们需要定义参数的位置来打印代码的正确输出。

示例 4: 指定填充字符

输出

现在,上面代码在填充字符方面的输出将如下-

....1234 
00001234

示例 5: 指定填充字符

输出

现在,上面代码在填充字符方面的输出将如下-

3.26e+9
****Hi 
Hi**** 
125.235000 
125.23 
125 
125.23500000

PHP 中的 sprintf() 和 printf() 函数的区别

sprintf() 和 printf() 函数的常见区别在于,sprintf() 函数借助 echo 显示文本,而 printf() 函数无需 echo 即可显示文本。我们将通过示例来展示这种区别。

示例

输出

在这里,我们可以看到 sprintf() 函数没有直接在浏览器上显示变量 $str1 存储的文本,所以我们使用 echo 来显示 str2 变量存储的字符串。

PHP String sprintf() function

现在,让我们看看 printf() 函数的工作原理。

输出

PHP String sprintf() function
下一个主题PHP 字符串函数