echo
是语言结构,printf
是函数。这意味着您将无法以echo
与printf
.
这不仅仅是个人品味
查看这两个功能的手册页:
那里讨论了这个主题,例如,您不能echo
使用变量函数调用。此外,他们获取和管理输入的方式也不同。如果您不需要您应该使用提供的参数FORMATTING(它会稍微快一些)。printf
echo
例子
我再次强调一些关键词:formatting和function。使用printf
is 不是连接字符串或从占位符构建字符串,而是使用自定义格式(可能来自配置、用户输入或其他任何内容)来完成。
我写了一些代码来解释我的意思(我发布的链接中的原始来源)。
此代码无效,echo
不是函数,因此它不会返回打印值(您可以使用print
or sprintf
,但print
不提供字符串连接)。
($some_var) ? echo 'true' : echo 'false';
以下代码打印格式化字符串,在这种情况下,格式来自文字变量,但它可能来自(例如)GET 请求或其他任何内容。您可以使用echo
从配置中获取的格式字符串重写它吗?
%format = "%'.-15.15s%'.6.6s\n";
printf($format, $heading1, $value1);