为什么回声行为不同?

时间:2015-08-11 14:10:15

标签: php testing echo

今天,

当我们引用一本书时,我们发现echo有多个参数,但很少有测试,它给我们带来了奇怪的行为。

这是一个测试:

echo("one", "two");

这是另一个:

echo "one", "two";

第一个测试用例是错误,但第二个不是..为什么?

1 个答案:

答案 0 :(得分:2)

文档为您提供答案:

  

echo实际上并不是一个函数(它是一种语言结构),所以你   不需要使用括号。回声(与其他一些不同   语言结构)不像一个函数,所以它不能   总是在函数的上下文中使用。 此外,如果您需要   将多个参数传递给echo,参数不能   括在括号内。

http://php.net/manual/en/function.echo.php

因此,简而言之:因为echo不是函数 - 跳过括号。如果您只想回显一个参数,则可以使用括号,但它不是自定义参数。

<?php
    echo 'Hello'; //Acceptable
    echo('Hello'); //Acceptable
    echo 'Hello ', 'world'; //Acceptable
    echo ('Hello ', 'world'); //Not acceptable
?>