为什么PHP echo printf会添加意外的符号

时间:2017-09-14 10:10:06

标签: php printf echo

我有php代码:

$searchTitlePersonType = ($isTravelAgency == true ? "tourists" : "persons"); 
var_dump($searchTitlePersonType); // Right behavior

同时,当我尝试在我的模板上实现它时:

<?php
    echo printf( $this->translate("Поиск %s"), $searchTitlePersonType ); 
?>

我在字符串的末尾加上不同的意外数字:&#34; tourist33&#34;或&#34;人27&#34;。它不依赖于字符串的编码页面,并且有很多人找到了解决它的方法 - 不要将echo printf组合在一行代码中,而是在这里我对这个问题的疑问:为什么它会发生吗?

链接:

php printf adds number to output

PHP printf adds something after formatted string

1 个答案:

答案 0 :(得分:4)

你在这里混淆了一些事情。 <{1}}作为构造没有意义,因为echo printf已经打印。

您所看到的是printf完成其工作,然后printf打印echo的结果,即打印字符串的长度。

因此,您可以使用printf,它返回格式化的字符串而不是打印它,或者您可以跳过程序的sprintf部分。