我想我们大多数人在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@H_301_25@ are not required to use parentheses with it.
if you want to pass more than one parameter to echo,the parameters@H_301_25@ 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@H_301_25@ 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’)==’确定’.