我想我们大多数人在PHP中编程学会回应“字符串”;虽然常见,但我想知道为什么我们使用它与任何其他功能如此不同.
那我们为什么要:
回声“一些字符串”;
代替
echo(“Some String”);
为什么两者都存在并且行为不同?有没有提到为什么做出这个选择?
编辑:我看到我的问题充斥着downvotes和upvotes.在任何一种方式投票时都要有建设性.
人们参考PHP文档,声明echo是一种语言结构,因此使用的方式不同.但在这种情况下,既然我们都可以将它用作构造和功能:这是首选方法?为什么它只应该是一种语言结构而实现两种方式呢?
编辑2:与上面相同,几乎都需要require,require_once,include和include_once.我在网上找不到任何解释 – 为什么这些结构也实现了功能性(在echo()的情况下,以一种有缺陷的方式).
echo is not actually a function (it is a language construct),so you
are not required to use parentheses with it.
if you want to pass more than one parameter to echo,the parameters
must not be enclosed within parentheses.
示例(从PHP 5.4.14开始):
<?PHP header('Content-Type: text/plain'); echo(1); // < works fine echo(1,2,3); // < Parse error: Syntax error,unexpected ',' on line 6 echo 1; // < works fine echo 1,3; // < works fine ?>
UPDv1:
Note: Because this is a language construct and not a function,it
cannot be called using variable functions.
<?PHP header('Content-Type: text/plain'); $print = 'print_r'; $print(1); // < works fine $echo = 'echo'; $echo(1); // < Fatal error: Call to undefined function echo() on line 8 ?>
UPDv2:
截至include
(同样适用于require,require_once和include_once),它可能具有return值.例如:
fileA.PHP:
<?PHP return 1; ?>
fileB.PHP:
<?PHP return 'abc'; ?>
测试:
<?PHP header('Content-Type: text/plain'); echo (include 'fileA.PHP'); // one way echo PHP_EOL; echo include('fileB.PHP'); // another way ?>
显示:
1 abc
在php.net的例子#4和#5中提到了它.
因为像’fileA.PHP’=”OK’这样的表达式并不明显(根据operator precedence),你应该将它们括在括号中,或者使用“类似函数”的方法:(包括’fileA.PHP’)==’确定’或包含(‘fileA.PHP’)==’确定’.