为什么在 PHP 中使用 sprintf 函数?

2022-08-30 06:21:25

我试图学习更多关于PHP函数sprintf()的信息,但 php.net 并没有帮助我,因为我仍然感到困惑,你为什么要使用它?

看看下面我的例子。

为什么使用这个:

$output = sprintf("Here is the result: %s for this date %s", $result, $date);

当这样做相同并且更容易编写IMO时:

$output = 'Here is the result: ' .$result. ' for this date ' .$date;

我在这里错过了什么吗?


答案 1

sprintf具有原始printf的所有格式化功能,这意味着您可以做的不仅仅是在字符串中插入变量值。

例如,指定数字格式(十六进制、十进制、八进制)、小数位数、填充等。谷歌打印f,你会发现很多例子。关于printf的维基百科文章应该让你入门。


答案 2

sprintf有很多用例,但我使用它们的一种方法是在数据库中存储一个字符串:“Hello,My Name is %s”在数据库中存储,或者在PHP类中存储常量。这样,当我想使用该字符串时,我可以简单地执行以下操作:

$name = 'Josh';
// $stringFromDB = 'Hello, My Name is %s';
$greeting = sprintf($stringFromDB, $name);
// $greetting = 'Hello, My Name is Josh'

从本质上讲,它允许在代码中进行一些分离。如果我在代码中的许多地方使用“Hello,我的名字是%s”,我可以在一个地方将其更改为“%s是我的名字”,并且它会自动更新到其他任何地方,而不必转到每个实例并在串联中移动。


推荐