我有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
组合在一行代码中,而是在这里我对这个问题的疑问:为什么它会发生吗?
链接:
答案 0 :(得分:4)
你在这里混淆了一些事情。 <{1}}作为构造没有意义,因为echo printf
已经打印。
您所看到的是printf
完成其工作,然后printf
打印echo
的结果,即打印字符串的长度。
因此,您可以使用printf
,它返回格式化的字符串而不是打印它,或者您可以跳过程序的sprintf
部分。