-2
我有PHP代码:为什么PHP回声的printf增加了意想不到的符号
$searchTitlePersonType = ($isTravelAgency == true ? "tourists" : "persons");
var_dump($searchTitlePersonType); // Right behavior
同时,当我尝试实施它在我的模板:
<?php
echo printf($this->translate("Поиск %s"), $searchTitlePersonType);
?>
我采取不同的意外数字在字符串的末尾:“游客33”或“个人27”。它不依赖于字符串的编码页面,并且有很多人找到解决方法 - 不要将echo printf
合并到一行代码中,但是这里是关于这个问题的问题:为什么会发生这种情况?
链接:
php printf adds number to output
PHP printf adds something after formatted string
在第一个链接中引用已接受的答案:“难道不是因为你在回应printf吗?” – JJJ
^我会说同样的。 'printf()'返回一个整数(字符串的长度)。当你回显它时,它会打印该整数。 http://php.net/manual/en/function.printf.php换句话说:你应该使用* echo *或'printf()',但不能同时使用! – Qirel
“printf”命令不需要“回显”,因为它输出数据本身。使用echo输出输出字符串长度的“printf”命令的结果。您必须删除'echo'或使用'sprintf'而不是'printf' – Stalinko