php – 带有大括号和没有大括号的echo有什么区别,为什么两种方法都存在?

前端之家收集整理的这篇文章主要介绍了php – 带有大括号和没有大括号的echo有什么区别,为什么两种方法都存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题出在标题中.

我想我们大多数人在PHP中编程学会回应“字符串”;虽然常见,但我想知道为什么我们使用它与任何其他功能如此不同.

那我们为什么要:

回声“一些字符串”;

代替

echo(“Some String”);

为什么两者都存在并且行为不同?有没有提到为什么做出这个选择?

编辑:我看到我的问题充斥着downvotes和upvotes.在任何一种方式投票时都要有建设性.

人们参考PHP文档,声明echo是一种语言结构,因此使用的方式不同.但在这种情况下,既然我们都可以将它用作构造和功能:这是首选方法?为什么它只应该是一种语言结构而实现两种方式呢?

编辑2:与上面相同,几乎都需要require,require_once,include和include_once.我在网上找不到任何解释 – 为什么这些结构也实现了功能性(在echo()的情况下,以一种有缺陷的方式).

php.net开始:

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’)==’确定’.

猜你在找的PHP相关文章