使用逗号","进行PHP字符串连接?

4
我刚刚发现了一些东西。
echo $var1 , " and " , $var2;

与以下代码相同:

echo $var1 . " and " . $var2;

在PHP中,实际的字符串连接符是什么?我应该使用.还是,

1
现在我们进行一次大的随机选择,以确定谁的答案是正确的! - RageZ
天啊..你说得对吗?这个问题太蠢了(呃,我就是那个蠢问题的提问者)..我会选择得票最高的答案。谢谢大家(真的很难选择最佳答案,我只是不停地刷新页面,然后就有很多答案z_z)! - bbtang
8个回答

14

. 运算符是连接运算符。你的第一个例子之所以工作,是因为 echo 'function'(严格来说,它是一种语言结构,但让我们不要纠缠这些细节)可以接受多个参数,并将每个参数都打印出来。

因此,你的第一个例子调用了带有多个参数的 echo,并且所有参数都被打印出来,而第二个例子中所有字符串都被连接到一起,然后打印出这一个大字符串。


3
注意:如果使用括号调用 echo,它不会接受多个参数。以下写法是错误的:echo($a, $b); - Ionuț G. Stan
1
我在某个地方读到,echo "a", "b"; 比 echo "a"."b"; 更快。 - Kamil Szot
我怀疑它并没有明显地更快,除非是对于非常大的“a”和“b”。不过我确实相信它。 - Matthew Scharley

4
实际的连接符是.(句号)。在那里使用,(逗号),你传递了多个参数给echo函数。(实际上,echo不是一个函数,而是PHP语言结构,这意味着可以省略函数调用所需的参数列表周围的括号。)

3

在第一种情况下,您只需输出3个不同的字符串。

在第二种情况下,您需要连接这3个字符串,然后输出结果。

因此答案是,在进行字符串连接时应使用点号(.)。


2

"."

另一种方法是独立写入多个值,而不实际连接字符串。

请参阅PHP echo参考文档,使用逗号的方法只适用于接受多个参数的方法。


2

1

1
“.” 是正确的连接符。 "echo" 命令也可以使用“,”作为参数分隔符号,这会将多个参数传递给 "echo" 方法并分别输出每个参数。但实际上并不是真正地将字符串连接起来。

0

不是因为 echo 可以接受多个参数,它会打印每一个参数吗?


我怀疑 echo 并不会进行连接操作,它只是打印每个参数。 - Matthew Scharley
1
是的,但会产生相同的效果。 - RageZ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接