在 PHP 中,为什么 echo 没有作为函数实现? (不是 echo 与 printf)
我只是好奇。在 PHP 中,为什么 echo
没有作为函数实现?为什么 PHP 不直接给我们 printf
而从不告诉我们 echo
?请注意:
- 这不是关于
echo
与printf
的问题。 - 我已经知道
echo
是一种语言构造。
更新:顺便问一下,printf
是使用echo
实现的吗?
I'm just curious. In PHP, why wasn't echo
implemented as a function? Why didn't PHP just give us printf
and never tell about echo
? Please note that:
- This is not a question about
echo
vs.printf
. - I already knew that
echo
is a language construct.
UPDATE: By the way, was printf
implemented using echo
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Echo 是一种语言结构。函数使用语言构造来完成其工作。解释并不完全是我的专长,但是谷歌操作让我想到了这个主题:
语言构造和 PHP 中的“内置”函数有什么区别?
一些重要内容:
Echo is a language construct. Function use language construct to do their job. Explaining is not exactly my specialty, but a google action brought me to this topic:
What is the difference between a language construct and a "built-in" function in PHP?
Some important content:
Echo 不是函数,它不会像 print 那样返回值。 Print 也是一种语言构造 - 不需要括号。
手动的:
echo - 没有返回值。
print - 始终返回 1。
事实仍然是,返回值会降低系统性能。
所以..现在由于 printf 是一个函数(它返回输出字符串的长度),我相信答案是显而易见的。
Echo is not a function and it doesn't return a value like print. Print is a language construct too - does not require parenthesis.
Manual:
echo - No value is returned.
print - Returns 1, always.
The fact remains that returning a value degrades system performance.
So.. now since printf IS a function (which returns the length of the outputted string) the answer I believe is obvious.
这只是一个大胆的猜测,但也许是因为 PHP 曾经作为 CGI 二进制文件存在。因此,这将是为了使移植 shell 脚本更容易,因为您可以在其中使用 echo 二进制文件。
Just a wild guess, but perhaps it's because PHP used to exist as CGI binaries. So it would be for making porting shell scripts easier, since you could use the echo binary in those.