Printf()在PHP中不如echo可靠?

Printf()在PHP中不如echo可靠?,php,printf,echo,Php,Printf,Echo,出于某种原因,我采用了使用printf($var)而不是使用echo$var。我真的不知道为什么 但是,如果我从变量输出字符串时遇到问题-如果我将printf($var)更改为echo$var-90%的时间解决了问题 这在我身上发生过不止一次不同的错误,从参数太少到只回显空字符串 有人能解释一下为什么printf()似乎不如echo可靠吗?printf-输出格式化字符串,print返回一个值。它总是返回1.0和echo的作用-输出一个或多个字符串 总是返回1似乎没有用。可以通过字符串连接或多次调

出于某种原因,我采用了使用
printf($var)
而不是使用
echo$var
。我真的不知道为什么

但是,如果我从变量输出字符串时遇到问题-如果我将
printf($var)
更改为
echo$var
-90%的时间解决了问题

这在我身上发生过不止一次不同的错误,从参数太少到只回显空字符串


有人能解释一下为什么
printf()
似乎不如
echo
可靠吗?

printf-输出格式化字符串,print返回一个值。它总是返回1.0和echo的作用-输出一个或多个字符串

总是返回1似乎没有用。可以通过字符串连接或多次调用来模拟逗号分隔的参数列表

通过返回一个值,打印函数比echo函数稍微动态一些,echo函数稍微(非常稍微)快一些。
printf
函数使用特殊分隔符,如
%s
%d
将动态变量/任何内容插入到任何需要的位置。例如,
printf('s与%s之间存在差异,'good','evil')
将返回
“good与evil之间存在差异”

检查这个

结果呢

看来echo和print在速度上非常非常接近。每个命令的差异仅为每秒2/1000000。这只能归结为个人喜好。我使用echo是因为我第一次使用echo。分配变量时,打印速度下降,此时命令速度下降1/100000秒,这仍然很小


上面链接的表单

printf
与使用
echo
非常不同,首先
printf
是一个返回值的函数,而
echo
通常被称为“语言结构”

printf
的第一个参数应该是一个格式字符串,正如名称所示,它用于格式化输出的字符串

echo
将按原样输出传递给它的“参数”(即在变量插值之后),而
printf
将按照前面提到的第一个格式字符串进行操作

例如,尝试下面的代码片段并注意到一些主要差异

echo   "I like %s! hello ", "world", " /stackoverflow" ;
echo   "\n"
printf ("I like %s! hello ", "world", " /stackoverflow");
输出


使用my BlackBerry编写和编辑,很抱歉出现任何格式错误。

echo-输出一个或多个字符串

echo实际上不是一个函数(它是一种语言构造),因此不需要使用括号。echo(与其他一些语言构造不同)的行为不像函数,因此它不能总是在函数的上下文中使用。此外,如果要将多个参数传递给echo,则这些参数不得括在括号内


printf-输出格式化字符串


返回输出字符串的长度,除非您特别需要,否则不要使用
printf($var)

原因是作为第一个参数传递的
$var
被视为格式字符串
%s
%d
等具有特殊含义。在C/C++中,这会导致分割错误,而在PHP中,你会在手腕上得到一个耳光。
echo
print
的等价物是
printf('%s',$var)
;它将
$var
强制转换为字符串,然后输出它


顺便说一句,
printf()
是一个函数,而
echo
print
是语言结构;因此,您可能会使用
echo

获得更好的性能。我假设您使用
printf()
来解决性能问题:)也许您认为它们是等效的,但它们非常不同。您可能正在考虑echo和。我认为您的问题的答案完全取决于您自己的代码。在没有分享你的实际代码的情况下问这个问题,在这个网站上根本不成问题。我们只能猜测。那么,是否有可能在Dreamweaver中浏览我的文件并“查找+替换”printf(使用print(?我在这个项目中没有出现“需要”printf的情况?所有答案都很好-但因为你投了反对票(不必要)我会接受这篇文章,也感谢你提供了那篇链接文章,读得好,谢谢!!printf没有返回1。而且,你从来没有说明为什么他在printf中遇到了看似不可靠的行为。相反,你提供了不相关的信息。所以…我觉得你的答案离主题太远,因此需要对噪音进行否决。如果只是“相比之下,一记耳光”除非需要,否则为什么不使用?需要详细说明,否则会有奇怪的建议(速度除外)。@bravmech因为使用它可能会导致意外的结果;原理对于C和PHP都是一样的,尽管即时效果(潜在的错误与奇怪的结果)是不同的。
I like %s! hello world /stackoverflow
I like world! hello