-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