C#String.Format()等效于PHP?

我正在构build一个相当大的Lucene.NETsearchexpression式。 有没有最好的做法,在PHP中的stringreplace? 它不一定是这样,但我希望有类似于C#String.Format方法的东西。

以下是C#中的逻辑。

var filter = "content:{0} title:{0}^4.0 path.title:{0}^4.0 description:{0} ..."; filter = String.Format(filter, "Cheese"); 

有一个PHP5的等价物吗?

你可以使用sprintf函数 :

 $filter = "content:%1$s title:%1$s^4.0 path.title:%1$s^4.0 description:%1$s ..."; $filter = sprintf($filter, "Cheese"); 

或者你编写自己的函数来用相应的参数replace{ i }

 function format() { $args = func_get_args(); if (count($args) == 0) { return; } if (count($args) == 1) { return $args[0]; } $str = array_shift($args); $str = preg_replace_callback('/\\{(0|[1-9]\\d*)\\}/', create_function('$match', '$args = '.var_export($args, true).'; return isset($args[$match[1]]) ? $args[$match[1]] : $match[0];'), $str); return $str; } 

试试sprintf http://php.net/sprintf