为什么echo与printf结合显示输出错误?

时间:2012-06-18 15:20:42

标签: php formatting printf echo string-formatting

有人知道我执行此操作时的原因:

#!/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 ...

3 个答案:

答案 0 :(得分:2)

您正在混合echoprintf

printf返回格式化字符串的长度,因此您的echo调用打印出'5'。

尝试删除echo并再试一次....

答案 1 :(得分:1)

printf返回你所做的字符串的长度,选择

echo sprintf(...) 

或只是

printf(...)

没有回音

答案 2 :(得分:1)

printf是一个函数,它将您给定的文本输出到标准输出并返回输出字符串的长度。

echo是一种用于输出数据的语言结构。最终,您在printf输出其值后回显printf语句的返回值。

使用echoprintf,但不能同时使用两者。