PHP中的分号是可选的吗?

时间:2018-10-11 09:53:56

标签: php syntax

我知道PHP(与Java一样)和C ++使用分号来终止语句,因此我想知道如何将PHP与HTML内联使用。我想知道为什么省略分号。

例如,以下代码为何起作用?

componentDidMount

注意:<?php if(true): ?> <p>Hello World !!!</p> <?php endif ?> endif之后没有分号

2 个答案:

答案 0 :(得分:6)

通常,我总是建议包括分号,但是您是对的,在这种情况下可以将其删除。

只有在语句后紧跟一个封闭的PHP标记(即?>)时,才可以在语句后添加分号。

这在以下PHP文档中进行了记录:http://php.net/manual/en/language.basic-syntax.instruction-separation.php

这是该语言最早的功能,旨在使模板化代码更易于阅读。

与Javascript不同,在其他情况下,不允许使用分号。

答案 1 :(得分:1)

<?php if(true): ?>
  <p>Hello World !!!</p>
<?php endif ?>

读为

<?php
if (true):
 echo "  <p>Hello World !!!</p>"
endif;
?>

的一种变体
<?php
if (true) {
 echo "  <p>Hello World !!!</p>"
}
?>

,仅当未使用模板引擎时才应在“ html模板”中使用 而以下变体用于标准php文件中

根据标准(PSR https://medium.com/paul-jaworski/turning-off-autocomplete-in-chrome-ee3ff8ef0908),不应在单行代码块中使用分号,因为遵循该分号非常有价值

*不提及周围的换行符