Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php echo不需要括号_Php_Function_Echo - Fatal编程技术网

php echo不需要括号

php echo不需要括号,php,function,echo,Php,Function,Echo,因为echo不是一个函数,所以调用它时不使用括号 例如: echo "hello"; 相对于 echo ("hello"); 如果它是一个函数,它将被强制调用为echo(“hello”) 在ASP/Vbscript中,我可以通过以下方式之一调用函数: call dosomething("x","y","z") dosomething "x","y","z" notice the missing parathesis 我在PHP中看到的最接近这种无括号语法的是echo。我喜欢跳过括

因为echo不是一个函数,所以调用它时不使用括号

例如:

echo "hello";
相对于

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

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

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

dosomething "x","y","z"   notice the missing parathesis
我在PHP中看到的最接近这种无括号语法的是echo。我喜欢跳过括号的能力


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

来自PHP内部

您需要修改Zend引擎中的C代码。这当然是不可取的,因为您需要使用自定义构建来运行代码。这对其他程序员来说也会造成不必要的混乱。您不应该仅仅因为喜欢跳过标记的功能而尝试更改核心语言特性

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

诸如
echo
include
等被称为语言结构。它们在语言中的实现方式类似于普通的一元运算符,如
new
++

还要注意的是,语言结构并没有严格忽略括号。以
unset()
为例。

echo()实际上不是一个函数(它是一种语言构造),因此不需要使用括号


关于echo的更多信息可以在这里找到:

否。“echo”在php中不是一个函数,而是一个语言构造,这就是为什么您可以在没有parens的情况下使用它。“include”或“require”也一样,您可以使用带括号或不带括号的选项。

echo
不是一个函数,而是一个“语言构造”(language construct)(),这就是为什么您可以使用带括号或不带括号的选项。看看这个问题的答案:@salathe正在充实一个不受欢迎的答案?@salathe我不相信它在这里。我告诉OP怎么做,以及这样做的缺点,@salathe…有没有一种方法可以用PHP编写一个不需要使用括号的函数?我没有修改Zend引擎中的C代码就回答了这个问题。对我来说,这似乎是这个问题的答案。如果有帮助的话,我将显式地添加not in PHP部分。@salath我更愿意学习问题的答案,然后学习一些更相关的信息。我不同意,就这样吧。另外,相信我添加了比其他答案更能被接受的额外信息是一种假设和错误的想法。我明白你的观点,但我更喜欢亚历克斯给出的更深入的答案。如果答案只是“是”或“否”,我会很讨厌的。以“是”为例。这会不会让我问另一个问题:“那怎么办?”。而且,很多时候,一个简单的“是”或“否”是非常误导人的。