C# String.Format() 在 PHP 中等效?

标签 c# php

我正在构建一个相当大的 Lucene.NET 搜索表达式。有没有最佳实践方法可以在 PHP 中进行字符串替换?它不一定是这种方式,但我希望有类似于 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 function :

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

或者您编写自己的函数,用相应的参数替换 {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;
}

关于C# String.Format() 在 PHP 中等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241177/

相关文章:

c# - Windows Phone 8 应用程序动态/以编程方式在 g 网格/面板中创建按钮

php - 取出数组元素

javascript - 单个文件上传的几个实例(使用fine-uploader)

c# - 以人类可读的文本格式序列化

c# - 用c#压缩

c# - 在 C# 的 StackExchange.Redis 中将什么用作 asyncState 对象(或从哪里获取它)

php - 从 mysql 中的 3 个不同表中选择和排序

c# - DateTimePicker 显示今天的日期而不是显示其实际值

php cURL - 请求必须分块或具有内容长度

javascript - 在具有无限滚动功能的 WordPress 网站的帖子之间插入 Google 广告