在echo构造中为什么不在没有双引号的情况下读取逗号

时间:2014-06-12 07:04:34

标签: php

<?php

$a="hello bro";
$b="how are u";

echo "$a,$b.<br/>";
echo $a,$b;

?>

在php中为什么不在第二个语句中读取逗号(,)

output-hello bro,你好吗?        你好brohow是你

我的问题是为什么不用逗号(,)分隔。请给我答案。

3 个答案:

答案 0 :(得分:0)

您需要将逗号与变量连接起来使用.

echo $a.','.$b;

答案 1 :(得分:0)

echo $a,$b; 

将被视为

echo $a;
echo $b ;

所以你可能需要

echo $a,',',$b; 

echo $a.','.$b; 

答案 2 :(得分:0)

在第一个echo语句中,逗号是字符串的一部分,当解析双引号字符串时,变量将被注入字符串。但是单引号不会发生这种情况,因为单引号字符串没有额外的解析。单引号的好处是,如果您处理大量字符串,单引号将运行得更快,因为它们没有额外的解析规则。

那么,为什么第二种说法不起作用?好吧,在第二个语句中,逗号被解析为多参数分隔符。 echo构造允许多个参数,每个参数都将被输出(注意:print构造不会带多个参数)。这种情况下的逗号是语法而不是输出。如果您想使用逗号语法实现相同的输出

<?php
echo $a,',',$b;
?>

或使用串联

<?php
echo $a.','.$b;
?>

总的来说,根据我在echo语句中使用多个参数的经验比使用串联更快,特别是在连接两个以上的值时。