php echo不需要括号

Ave*_*Joe 1 php function echo

因为echo不是函数,所以在调用它时我们不使用括号.

例:

echo "hello";
Run Code Online (Sandbox Code Playgroud)

而不是

echo ("hello");  
Run Code Online (Sandbox Code Playgroud)

如果它是一个函数,它将被强制称为 echo ("hello");

在ASP/Vbscript中,我可以通过以下方式之一调用函数;

call dosomething("x","y","z")

dosomething "x","y","z"   notice the missing parathesis
Run Code Online (Sandbox Code Playgroud)

我在PHP中看到的这种无括号语法最接近的是echo.我喜欢跳过括号的能力.

我的问题是,如果有一种方法可以在PHP中编写函数,那么不需要使用括号?

ale*_*lex 8

从PHP内部?.

您需要修改Zend Engine中的C代码.这当然是不可取的,因为您需要使用自定义构建来运行代码.它也会让其他程序员不必要地混淆.您不应该仅仅因为喜欢跳过令牌而尝试更改核心语言功能.

括号对于表示函数调用很重要.

世事如echo,include等被称为语言构造.它们在语言实现的方式是类似于普通一元运算符,如new,++等.

另请注意,语言结构并未严格省略括号.以unset()为例.

  • 我看到你的观点是salathe,但我更喜欢像Alex给出的更深入的答案.如果答案只是肯定或否定,我会讨厌.采取是的情况.这是否会让我问另一个人"怎么样?".此外,很多时候,一个简单的是|否是非常误导. (8认同)
  • @salathe我不相信它在这里.我告诉OP*如何做到这一点以及做这件事的缺点. (5认同)
  • @salathe正在充实的答案皱眉? (3认同)
  • @salathe*... [有]一种在PHP中编写函数的方法,不需要使用括号?*我回答了**没有修改Zend Engine*中的C代码.似乎对我的问题的答案.我会明确地添加*不在PHP*部分,如果它可以帮助你. (2认同)
  • @salathe我更愿意了解我的问题的答案,然后了解一些更相关的信息。我只是不同意,就这样吧。另外,相信我添加了比其他答案更可接受的额外信息是一种假设和错误的想法。 (2认同)