为什么回显与 printf 相结合会显示错误的输出


Why does echo combined with printf displays wrong output?

>有谁知道为什么当我执行这个:

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

你混合了echoprintf

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

尝试删除echo,然后重试....

printf 返回您创建的字符串的长度,请选择

echo sprintf(...) 

或者只是

printf(...)

没有回声

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

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

要么使用 echo 要么使用 printf ,但不能同时使用两者。