是否需要结束php查询或函数宽度'';在html标签中?

是否需要结束php查询或函数宽度'';在html标签中?,php,Php,我有一个简单的问题。我正在学习php,我意识到用“;”结束函数如果任何其他函数或查询不存在,则不需要。但是我想知道,当在示例中的html标记中使用php时,不结束函数会导致任何性能和安全问题吗 <?php foreach( $cars as $car ):?> <option><?php echo $car ?></option> <?php endforeach ?> 谢谢。说: PHP代码块的结束标记自动暗示 分号; 不需

我有一个简单的问题。我正在学习php,我意识到用“;”结束函数如果任何其他函数或查询不存在,则不需要。但是我想知道,当在示例中的html标记中使用php时,不结束函数会导致任何性能和安全问题吗

<?php foreach( $cars as $car ):?>
  <option><?php echo $car ?></option>
<?php endforeach ?>

谢谢。

说:

PHP代码块的结束标记自动暗示 分号; 不需要分号来终止PHP块的最后一行


这就是为什么在这种特殊情况下,
echo
不需要分号的原因。

在php中,当php代码以
?>
结尾时,不需要给出分号;或者你可以放弃。这是可选的,不会导致任何性能和安全问题。但是作为一个好的实践,你不应该留下分号。

现在任何一行代码都不需要有分号。它也不会导致任何性能或安全问题


有关标准的更多信息,请查看图(框架互操作组)模型PSR-1和PSR-2:

正如其他人所说,不,您不必使用
endofreach
之后添加code>

但是请考虑一下! 当你在这个脚本中添加一些新代码时,比如说6个月后,你忘了检查代码,看看你现在是否需要在这个foreach上添加分号,你会发现脚本有问题,这与你的新代码无关,但这就是你要找的,因为你已经改变了

如果您总是添加结束分号终止符,这将永远不会是问题


考虑到未来的代码。

就PHP而言,这两段代码之间完全没有区别。如果在
?>
之前缺少尾随分号,则会自动插入该分号

唯一的区别在于开发者最佳实践是始终包含分号。这样做的原因不是因为PHP中有什么不同,而是因为它使开发人员更容易使用代码

出于同样的原因,最好的做法是始终在块周围放置大括号,即使它只有一行(大括号不是严格要求的)。因为它使您的代码更易于使用

因此,总结一下:

  • 之间的区别:
    。PHP认为它们是相同的

  • 安全问题:
    。见上文。(担心安全是件好事,但你需要知道真正的安全隐患是什么,而不是猜测)

  • 性能问题:
    。见上文。(不过,无论如何我都不会担心,你有成为受害者的危险)

  • 那么为什么要包含分号呢?
    因为它让你作为一名编码员的生活更轻松


自己试试,你会得到答案的!!!!:)写这封信!如果我不得不继承你的项目,我的眼睛会流血好几天。只需使用
请注意您的术语有点混乱-上面的不是函数,而是流控制语句。无论如何,PHP将插入一个隐式;当它遇到一个?>。养成省略的习惯是不可取的;但是,请查看文档/我的答案,以获得“到源代码”的解释。您的答案与其他答案不同,我会仔细考虑