为什么echo和print不能在下面的代码片段中以可互换的方式使用?

时间:2015-09-23 12:56:03

标签: php syntax syntax-error output echo

请考虑以下简单的代码段:

<!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*

为什么会这样?

如果可以在一个声明中使用回声和打印,为什么反向模式不起作用?

请完整解释,以满足我的疑问。

感谢。

1 个答案:

答案 0 :(得分:3)

print是一个行为类似于函数的构造;它的返回值为1。因此:

echo print 'x';

在语法上有效并生成x1,其中xprint打印,1由echo打印。这相当于:

$print_value = print 'x';
echo $print_value;
另一方面,

echo没有返回值,因此$echo_value = echo 'x';是语法错误,因此print echo 'x';