2

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

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

谢谢你。

4

5 回答 5

4

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

于 2013-09-24T12:46:26.297 回答
2

就 PHP 而言,这两个代码块之间完全没有区别。如果在?>.

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

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

所以,总结一下:

  • <?php echo $car ?>和之间的区别<?php echo $car; ?>
    。PHP 认为它们是相同的。

  • 安全问题:
    。看上面。(担心安全是好事,但你需要了解真正的安全隐患是什么,而不是猜测)

  • 性能问题:
    。看上面。(但是,无论如何我都不会担心;您有成为过早优化受害者的危险)。

  • 那么为什么要包含分号呢?
    因为它使您作为编码员的生活更轻松。

于 2013-09-24T13:07:03.913 回答
1

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

有关标准是什么的更多信息,请在此处查看图(框架互操作组)模型 PSR-1 和 PSR-2:github.com/php-fig/fig-standards

于 2013-09-24T12:47:27.693 回答
1

正如其他人所说,在这种情况下,您不必使用;after your 。endofreach

不过考虑一下!

当您向该脚本添加一些新代码时,假设 6 个月后您忘记检查代码以查看您现在是否需要在该 foreach 上添加分号,您将遇到脚本问题,什么都没有与您的新代码有关,但这将是您的外观,因为这就是您所做的一切!

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

着眼于未来的编码。

于 2013-09-24T12:51:21.457 回答
0

PHP 文档说:

PHP 代码块的结束标记自动暗示分号;您不需要在 PHP 块的最后一行结束分号。

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

于 2013-09-24T12:44:25.367 回答