php-与echo和return串联时,句点和逗号之间的差异?

我刚刚发现这可以工作:

echo $value , " contiue";

但这不是:

return $value , " contiue";

而“。” 两者均可。

这里的句号和逗号有什么区别?

6个解决方案
67 votes

echo只允许一个表达式。 但是echo允许使用一个表达式列表,其中每个表达式用逗号分隔。 但是请注意,由于echo不是函数,而是一种特殊的语言构造,因此将表达式列表用括号括起来是非法的。

Gumbo answered 2020-01-01T17:56:52Z
30 votes

您还必须注意,用逗号将echo作为构造比用点更快。

因此,如果您加入一个角色400万次,那么您将获得:

echo $ str1,$ str2,$ str3;

约2.08秒

回声$ str1。 $ str2。 $ str3;

约3.48秒

如上所见,这几乎花费了一半的时间。

这是因为带点的PHP首先连接字符串,然后输出它们,而带逗号的PHP则将它们一个接一个地打印出来。

我们正在谈论分数,但仍然如此。

原始资料

Mr.Web answered 2020-01-01T17:57:51Z
19 votes

.是PHP中的串联运算符,用于将两个字符串放在一起。 逗号可用于多个输入以回显。

GSto answered 2020-01-01T17:58:12Z
10 votes

点(echo)用于连接变量或字符串。 这就是为什么当您在连接两个字符串时回显,并且在方法中返回字符串的串联时,它起作用的原因。 但是逗号没有连接起来,这就是为什么return语句不起作用的原因。

2683747341181649949920是一种可以接受多个表达式的语言构造,这就是逗号起作用的原因:

void echo ( string $arg1  [, string $...  ] )

使用点进行串联

Patrick Desjardins answered 2020-01-01T17:58:41Z
7 votes

.是一种语言构造(不是函数),可以使用多个参数,因此,可以工作。 使用逗号会稍微均匀(但仅需几纳秒,无需担心)

.是字符串的串联运算符(胶水)

knittl answered 2020-01-01T17:59:06Z
5 votes

return实际上是一个函数(不是真的,但是说它是用于参数),它可以接收任意数量的参数并将它们连接在一起。

尽管return不是函数,而是关键字,它告诉函数返回值,并且它试图将,解释为某种运算符。 如果使用return语句,则应将.用作连接运算符。

Kibbee answered 2020-01-01T17:59:30Z
translate from https://stackoverflow.com:/questions/1466408/difference-between-period-and-comma-when-concatenating-with-echo-versus-return