当我在编辑器中运行以下代码时,我感到惊讶:
<?php
echo "hello";
echo "world"
?>可以很容易地看到,代码中缺少分号(;),但是它仍然工作!
这是如何工作的,为什么;在这里是{0,1}?
发布于 2015-03-26 16:40:47
因为关闭标记意味着分号。您可以在Instruction separation下的手册中阅读更多有关这方面的内容。
在此引用如下:
与C或Perl一样,PHP需要在每个语句的末尾用分号结束指令。代码块的结束标记自动意味着分号;,您不需要有分号终止PHP块的最后一行。如果有,块的结束标记将包括立即尾随的换行符。
一个证明这一点的例子:
<?php
echo "1";
echo "2"
//^ semicolon missing
?>产出:
12<?php
echo "1";
echo "2"
//^ semicolon missing (closing tag missing)产出:
解析错误:语法错误,文件意外结束,期望“,”或“;”在
发布于 2015-03-26 16:40:55
因为分号告诉解析器您已经到达指令的末尾。它让它知道下一个文本是一个新的指令。但是,结束标记告诉它,我们处于所有指令的末尾,您不需要解析任何其他内容。因为我们没有解析任何其他不需要指令分号结束的东西,所以这是隐含的。
发布于 2015-03-26 23:05:21
这是因为分号不是终止语句的符号。
它看起来是这样的,因为它几乎总是发生在语句的末尾。
注意几乎总是..。可能是个暗示。
试图摆脱这种不对称,我们可以说是总是之间的语句!
这直接导致分号的真正含义:它不终止语句-它分隔语句。
显然,在最后一次声明之后,没有什么可以分开的。
(大多数语言都允许在块的末尾加上分号,以防止相关的琐碎错误。这可以通过放弃分号来完成,或者更明确地说,可以插入一个在分号之后什么也不做的命令。)
https://stackoverflow.com/questions/29284075
复制相似问题