逗号更快。
The echo
构造允许多个“参数”。当你echo
使用逗号,输出将直接逐段发送到缓冲区。当你使用.
,它必须首先连接。
对于大多数应用程序来说,这不会对速度产生巨大影响,但我通常养成使用逗号的习惯echo
anyway.
如果您好奇的话,这是一个基准:http://www.electrictoolbox.com/php-echo-commas-vs-concatenation/
EDIT:现在,这就是事情“失序”的原因。 (向所有人道歉,因为我现在才发现这一直是根本问题。)当你echo
with .
,你先连接之前echo
开始做它的工作。为此,需要首先评估每个表达式。考虑一下:
echo (5+5) . (10+10);
PHP首先会评估(5+5)
进而(10+10)
。这相当于把它变成这样:
echo 10 . 20;
然后这些需要连接起来,所以它们被转换为字符串并变成这样:
echo "1020";
那有意义吗?现在考虑函数previous_post_link()
。 @Tim 说得很对,这个函数没有返回值。当该函数被评估时,它不返回任何内容并回显一些内容。所以如果我们这样做:
echo "test" . previous_post_link();
首先,对这两件事进行评估。"test"
已经是一个字符串,但我们需要运行该函数previous_post_link()
首先获取其连接的返回值。跑的时候,previous_post_link()
输出一些东西,但不返回任何东西。"test"
然后与任何内容连接,并且该连接通过输出echo
.
现在,假设我们使用逗号代替:
echo "test", previous_post_link();
PHP 评估所有“参数”echo
按顺序构建并输出。第一的,"test"
是输出,然后previous_post_link()
被评估,它有自己的输出,并且不返回任何内容,因此没有任何输出。
我希望这更清楚。如果没有的话发帖。