在 PHP 中,为什么 echo 没有作为函数实现? (不是 echo 与 printf)

发布于 2024-09-16 05:15:44 字数 293 浏览 10 评论 0原文

我只是好奇。在 PHP 中,为什么 echo 没有作为函数实现?为什么 PHP 不直接给我们 printf 而从不告诉我们 echo?请注意:

  • 这不是关于 echoprintf 的问题。
  • 我已经知道 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

骄兵必败 2024-09-23 05:15:44

Echo 是一种语言结构。函数使用语言构造来完成其工作。解释并不完全是我的专长,但是谷歌操作让我想到了这个主题:

语言构造和 PHP 中的“内置”函数有什么区别?

一些重要内容:

...

这就是为什么你无法重新定义 echo 或 print 等语言结构的根源:
它们被有效地硬编码到解析器中,而函数则映射到
一组语言结构和解析器允许您更改该映射
编译或运行时来替换您自己的一组语言结构或表达式。

...

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:

...

This is the root of why you can't redefine language constructs like echo or print:
they're effectively hardcoded into the parser, whereas functions are mapped to a
set of language constructs and the parser allows you to change that mapping at
compile- or runtime to substitute your own set of language constructs or expressions.

...

尘曦 2024-09-23 05:15:44

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.

日久见人心 2024-09-23 05:15:44

这只是一个大胆的猜测,但也许是因为 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文