sprintf和占位符处理订单

时间:2016-08-22 02:01:01

标签: php wordpress

我在Wordpress模板中有以下PHP代码,它获取用户搜索查询文本并将其插入到字符串中:

$name = sprintf( esc_html__( 'Search Results for: %s'),  get_search_query());

上述行有效,结果如下:

"Search Results for Doggy Bags"

我不明白的是,它为什么有效?在esc_html__()有机会将前一个函数中的占位符(%s)替换为搜索查询字词之前,sprintf()是否应先运行?

谢谢,

1 个答案:

答案 0 :(得分:1)

你是对的。 esc_html__()先运行,然后将其输出返回sprintf()

esc_html__()函数返回the translation of Search Results for: %s and escapes it for safe use in HTML output

如果此字符串没有已定义的翻译,则其输出为Search Results for: %s。实际上,它变成了:

sprintf("Search Results for: %s",get_search_query());

然后:

sprintf("Search Results for: %s","Doggy Bags");

最后,它变成了:

Search Results for: Doggy Bags