首页 > 解决方案 > 在内联PHP中省略大括号是否合法?

问题描述

带大括号:

<input type="text" name="text" value="<?php if (isset($text)) { echo $text; } ?>" />

不带大括号:

<input type="text" name="text" value="<?php if (isset($text)) echo $text; ?>" />

两者都工作正常并且没有错误。但出于好奇,我想知道哪个是最佳做法?

标签: php

解决方案


您可以安全地使用此类代码而无需添加大括号。但仅适用于简单的操作,例如打印某些内容或执行某个命令。如果你的内联 PHP 代码包含更多逻辑,你应该使用大括号,因为这种语言是如何工作的。

<!-- This is correct -->
<?php if (isset($text)) echo $text ?>

<!-- Here you have more statements, you should use braces -->
<?php if (isset($text)) { $text = trim($text); echo $text; } ?>

但是最好不要在内联标记中创建像这样的长多行语句。最佳实践是在渲染之前转换所有必需的操作。

<?php
  if (isset($text))
    $text = trim($text);
?>
<!-- Here some other content rendered -->
<?php if (isset($text)) echo $text; ?>

推荐阅读