使用PHP的回声,何时有区别。什么?

时间:2010-07-14 01:59:52

标签: php syntax

我最近注意到有两种方法可以在PHP中打印多个语句。

echo $a.$b; // Echo's $a and $b conjoined, and
echo $a,$b; // Echo's $a and echo's $b.

这两种语法之间的区别是否重要?

5 个答案:

答案 0 :(得分:6)

实际上,没有。

echo $a.$b首先将$a$b连接到新字符串,然后将其作为参数传递给echo,然后将其打印出来

echo $a,$b为<{1}}提供了两个参数,这两个参数将打印出来。

后者效率稍高。不过你通常会注意到的任何方式。

评估方式有所不同。 echo就像写echo $a, $b,两个单独的电话。 echo $a; echo $b;$b后,我会对$a进行评估。如果你的参数是函数调用本身echo,那么可以有所不同,但实际上这应该是无关紧要的,因为这是不好的做法。

答案 1 :(得分:6)

有一点值得注意。使用第二个synthax,即使第二个参数导致错误,第一个参数仍会输出。

<?php
echo 1, error(); // This outputs 1, then it displays an error 
?>

虽然第一部分不会回应第一部分。

<?php
echo '1' . error(); // Only displays an error
?>

当您使用逗号分隔参数时,它将一个接一个地回显它们。当你使用点运算符时,它会将它们连接成一个字符串然后它将回显它。

答案 2 :(得分:4)

在绝大多数情况下,差异并不重要。

如果你要连接在一起的东西特别大,那么可能可能,连接可能会慢一些,并且可能会占用更多内存。然而,专注于微优化通常是加快速度的最糟糕方式。

答案 3 :(得分:1)

编程:

  1. 将2个字符串连接成1个变量,并将字符串表示形式发送到输出缓冲区。

  2. 循环2个变量并将字符串表示发送到输出缓冲区。

  3. 两种不同的方法可以产生类似的结果。如果将这些实现乘以一个重要数字,您会看到一些差异。

答案 4 :(得分:0)

几年前我问过一个PHP核心成员,他们说没有。它只是另一种替代语法,允许您使用多种方法来执行操作。在引擎盖下,可能会有一些优点,但没有人会注意到。