有誰知道爲什麼當我執行此:爲什麼echo與printf結合顯示錯誤的輸出?
#!/usr/bin/php
<?php
$eff_theo = array_fill(0, 10, 100);
for ($i = 0; $i < 10; ++$i)
echo printf("%5d", $eff_theo[$i]).' ';
echo PHP_EOL;
?>
我得到這個:
1005 1005 1005 1005 1005 1005 ...
有誰知道爲什麼當我執行此:爲什麼echo與printf結合顯示錯誤的輸出?
#!/usr/bin/php
<?php
$eff_theo = array_fill(0, 10, 100);
for ($i = 0; $i < 10; ++$i)
echo printf("%5d", $eff_theo[$i]).' ';
echo PHP_EOL;
?>
我得到這個:
1005 1005 1005 1005 1005 1005 ...
你混合echo
和printf
。
printf
返回格式化字符串的長度,因此您的echo
調用打印出'5'。
嘗試取出echo
後再次嘗試....
printf返回格式化字符串的長度,而不是值;它輸出值 –
這是當我沒有足夠的咖啡時嘗試回答問題時發生的情況。我會發現 - 謝謝你! – andrewsi
的printf返回您所做的字符串的長度,選擇使用
echo sprintf(...)
或只是
printf(...)
與無回聲
不要'echo printf',只是'printf'。 –
你期待什麼輸出?回聲只是我可以看到的空間。格式說明符中的5是什麼? –