sprintf - 重复参数

2022-08-30 10:05:11

我想格式化一个字符串,但重复多次参数。看。。sprintf

$str = "Str 1: %s - Str 2: %s - Str 2 again: %s";

考虑到要格式化的字符串,我想重复第二个参数两次。

echo sprintf($str, "I'm string 1", "My name is string 2");

想要的结果如下:

Str 1: I'm string 1 - Str 2: My name is string 2 - Str 2 again: My name is string 2

有一种方法可以做到这一点??


答案 1

一切都在文档中

$str = 'Str 1: %1$s - Str 2: %2$s - Str 2 again: %2$s';
echo sprintf($str, "I'm string 1", "My name is string 2");

注意:格式字符串使用单引号,否则您将获得 PHP 通知:未定义的变量:s in /path/to/tofile:line

您也可以使用双引号转义 a。$\


答案 2

推荐