我只是好奇。在 PHP 中,为什么不echo
作为函数实现?为什么 PHP 不只是给我们printf
,从不告诉我们echo
?请注意:
- 这不是关于
echo
vs.的问题printf
。 - 我已经知道这
echo
是一种语言结构。
更新:顺便说一句,是printf
使用echo
?
我只是好奇。在 PHP 中,为什么不echo
作为函数实现?为什么 PHP 不只是给我们printf
,从不告诉我们echo
?请注意:
echo
vs.的问题printf
。echo
是一种语言结构。更新:顺便说一句,是printf
使用echo
?
Echo 不是函数,它不会像 print 那样返回值。打印也是一种语言结构 - 不需要括号。
手动:echo - 不返回任何值。print - 总是返回 1。
事实上,返回值会降低系统性能。
所以..现在既然 printf 是一个函数(它返回输出字符串的长度),我相信答案是显而易见的。
Echo 是一种语言结构。函数使用语言构造来完成他们的工作。解释不是我的专长,但谷歌的一个动作让我想到了这个话题:
一些重要内容:
...
这就是为什么您不能重新定义诸如 echo 或 print 之类的语言结构的根源:它们被有效地硬编码到解析器中,而函数被映射到一组语言结构,并且解析器允许您在编译时更改该映射或运行时替换您自己的一组语言结构或表达式。
...
只是一个疯狂的猜测,但也许是因为 PHP 曾经作为 CGI 二进制文件存在。所以这将是为了使移植 shell 脚本更容易,因为您可以在其中使用 echo 二进制文件。