sprintf - 重复参数

39 php printf

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

$str = "Str 1: %s - Str 2: %s - Str 2 again: %s";
Run Code Online (Sandbox Code Playgroud)

考虑到要格式化的字符串,我想重复第二次arg两次.

echo sprintf($str, "I'm string 1", "My name is string 2");
Run Code Online (Sandbox Code Playgroud)

想要的结果如下:

Str 1: I'm string 1 - Str 2: My name is string 2 - Str 2 again: My name is string 2
Run Code Online (Sandbox Code Playgroud)

有办法吗?

Sav*_*man 75

一切都在文档中!

$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");
Run Code Online (Sandbox Code Playgroud)

注意:使用单引号作为格式字符串,否则你会得到PHP注意:未定义的变量:s in/path/to/tofile:line

您也可以逃脱$\,如果你使用的是双引号.