为什么在 php 的最后一个语句中分号是可选的?
当我在编辑器中运行以下代码时,我感到很惊讶:
<?php
echo "hello";
echo "world"
?>
可以很容易地看出,代码中缺少分号(),但它仍然有效!;
这是如何工作的,为什么{0,1}在这里?;
当我在编辑器中运行以下代码时,我感到很惊讶:
<?php
echo "hello";
echo "world"
?>
可以很容易地看出,代码中缺少分号(),但它仍然有效!;
这是如何工作的,为什么{0,1}在这里?;
因为关闭标记表示分号。您可以在指令分离下的手册中阅读有关此内容的更多信息。
还有一句话:
与在C或Perl中一样,PHP要求指令在每个语句的末尾以分号结尾。PHP代码块的结束标记自动暗示分号;您不需要使用分号终止 PHP 块的最后一行。块的结束标记将包括紧随其后的换行符(如果存在)。
举个例子来证明这一点:
1. 末尾缺少分号的脚本,但带有结束标记:
<?php
echo "1";
echo "2"
//^ semicolon missing
?>
输出:
12
2. 末尾缺少分号但没有结束标记的脚本:
<?php
echo "1";
echo "2"
//^ semicolon missing (closing tag missing)
输出:
解析错误:语法错误,文件意外结束,在
因为分号告诉解析器您已经到达了该指令的末尾。它让它知道下一段文本是一条新指令。但是,结束标记告诉它我们处于所有指令的末尾,您不需要解析任何其他内容。因为我们没有解析其他任何东西,所以我们不需要指令分号的结尾,这是隐含的。