我正在查看许多代码片段,我发现人们可以在if
语句中使用以下两种方法:
方法一:
<?php
if ($condition) {
// Do this
}
?>
方法2:
<?php
if ($condition):
// Do this
endif;
?>
那么哪种方法与PHP编译器和PHP版本更兼容,还是两者之间没有明显的区别呢?
大多数情况下,替代 (endif) 语法用于视图脚本。通常很难看到/注意到 if 语句的结尾,因为大括号只占用一个字符,当您位于文件底部时,很难判断它是 if 还是 foreach 的结尾。例如:
<?php if ($condition): ?>
<div>a huge block of html</div>
<?php endif; ?>
它们完全等效。请参阅组织的风格指南以确定应使用哪个。
这种替代语法与可能更熟悉的语法没有任何不同。只是不要将两者混为一谈。类似的语法也存在于while
、for
、foreach
和switch
。
通常,您应该根据可读性和团队偏好选择首选语法。
真正可能抛弃你的是,当你开始看到滥用逻辑连接运算符的"if语句"时,如下所示:
isset( $value ) AND print( $value );
正如我到目前为止所看到的,在我的应用程序中,它们之间没有区别,但是如果您在没有规则的情况下混合它们,您可能会遇到很多问题,因为可能会得到一些错误,您将搜索卷曲但您没有使用卷曲。选择一种独占使用的语法。
唯一的区别是在非常大的文档和项目中。 我的公司使用大括号而不是endif,endelse...当我们从事非常大的项目时。 比较文件大小时,使用大括号有一个好处。较小的文件加载速度更快,因此我们努力减少每个字节。我们注释掉了结尾大括号,以便在测试时更容易识别,然后删除生产中的所有注释。