为什么 echo 和 print 不能在以下代码片段中互换使用?
Why echo and print can not be used interchageably in following code snippet?
考虑以下简单代码片段:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 4;
echo print $x + $y;
?>
</body>
</html>
输出如下:
91
现在考虑另一个类似的代码片段:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 4;
print echo $x + $y;
?>
</body>
</html>
输出如下:
*a blank white screen*
为什么会这样?
如果 echo 和 print 可以在一条语句中使用,为什么反向模式不起作用?
请解释清楚,满足我的疑问。
谢谢。
print
是一个行为类似于函数的结构;它的 return 值为 1
。因此:
echo print 'x';
在句法上是有效的并生成 x1
,其中 x
由 print
打印,1
由回显打印。这相当于:
$print_value = print 'x';
echo $print_value;
另一方面,echo
没有 return 值,因此 $echo_value = echo 'x';
是语法错误,print echo 'x';
.
也是
考虑以下简单代码片段:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 4;
echo print $x + $y;
?>
</body>
</html>
输出如下:
91
现在考虑另一个类似的代码片段:
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
$y = 4;
print echo $x + $y;
?>
</body>
</html>
输出如下:
*a blank white screen*
为什么会这样?
如果 echo 和 print 可以在一条语句中使用,为什么反向模式不起作用?
请解释清楚,满足我的疑问。
谢谢。
print
是一个行为类似于函数的结构;它的 return 值为 1
。因此:
echo print 'x';
在句法上是有效的并生成 x1
,其中 x
由 print
打印,1
由回显打印。这相当于:
$print_value = print 'x';
echo $print_value;
另一方面,echo
没有 return 值,因此 $echo_value = echo 'x';
是语法错误,print echo 'x';
.