php - 在内联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 代码包含更多逻辑,你应该使用大括号,因为这种语言是如何工作的。
<!-- 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; ?>
推荐阅读
- serialization - 尝试在序列化程序“LoginSerializer”上获取“电子邮件”字段的值时出现 AttributeError
- javascript - React:ClearInterval 并立即重新开始
- docker - 如何将第三方 DLL 添加到 DockerFile?C#
- c# - 无法获取使用实体框架过滤的第三级记录
- python - 多个 Atrous 卷积很慢
- java - 有没有办法让我在扫描仪类定义的方法中分配变量 numA 并在不同的方法中使用它?
- blockchain - ERC20:转账金额超过限额,即使被批准
- python - 向量运算应该只改变向量,还是改变向量并返回运算结果?
- django - 如何让用户关联到另一个模型 DRF。ValueError:精确查找的 QuerySet 值必须使用切片限制为一个结果
- mysql - 无法在 M1 MacBook Big Sur 中安装 mysql2 0.5.3