【发布时间】:2010-08-05 07:43:35
【问题描述】:
我知道要在 php 中连接字符串,应该使用点:
echo 'hello' . ' world'; // hello world
但顺便说一句,我输入了这个:
echo 'hello' , ' world';
结果仍然是hello world,没有任何错误。
为什么会这样? 我们也可以使用逗号连接吗?
【问题讨论】:
标签: php language-features
我知道要在 php 中连接字符串,应该使用点:
echo 'hello' . ' world'; // hello world
但顺便说一句,我输入了这个:
echo 'hello' , ' world';
结果仍然是hello world,没有任何错误。
为什么会这样? 我们也可以使用逗号连接吗?
【问题讨论】:
标签: php language-features
【讨论】:
不,不能用逗号连接:
<?php
$foo = 'One', 'Two';
?>
解析错误:语法错误,意外 ','
【讨论】:
echo 是一种语言结构,因此您不需要括号。但是您正在“传递”多个参数来回显。把它想象成:
echo('hello', ' world');
【讨论】:
这不是什么隐藏的技巧,它就是 echo 的工作原理。如果您查看echo 的 PHP 参考文档,您会注意到它会回显您向其抛出的字符串列表。
【讨论】:
echo 是一种语言结构。它在某种程度上是在语法级别定义的特殊功能(我可能错了)。它是一个函数,它以某种方式不遵循任何定义函数/方法的定义方式作为示例以及调用它们的方式。它“绕过”了一些语法检查:)
StackOverflow 中有一篇很好的帖子讨论了 difference between language construct & built in functions。
【讨论】:
echo('hello', ' world');
同理:
echo 'hello', ' world';
【讨论】: