问题是自我解释。
在PHP中何时使用if/endif
表示法而不是标准if(something){}
表示法?
示例:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
对战:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
答案 0 :(得分:15)
其他人给出了“模板化”的答案,但没有真正解释原因。花括号非常适合表示块,但它们依赖于缩进来清晰地读取。所以这很清楚:
<?php
if (1 == 2)
{
while (1 < 2)
{
doSomething();
}
}
很明显哪个大括号匹配哪个。
但是,如果你要进入HTML块,你可能会完全停止缩进。例如:
<?php
if (1 != 2) { ?>
<div>This always happens! <?php while (true) { ?>
<p>This is going to cause an infinite loop!</p>
<?php }
}
这很难理解。如果您使用endif
样式,它看起来会更清晰:
<?php
if (1 != 2): ?>
<div>This always happens! <?php while (true): ?>
<p>This is going to cause an infinite loop!</p>
<?php endwhile;
endif;
代码的内容更清楚地显示了正在做什么。对于这种有限的情况,它更清晰。
答案 1 :(得分:14)
简短回答:
始终使用 if($something) { }
并且几乎从不使用 if/endif
。它是PHP 4.0.0以来的标准,虽然旧的语法不会消失,但这是每个人都期望的。
如果您真的在寻找可以使用if / endif的情况,那么当使用php作为模板语言时就是这样。
有些人喜欢这样的事情:
<?php if ($foo): ?>
Hi There
<?php else: ?>
cya!
<?php endif; ?>
优于
<?php if ($foo) { ?>
Hi There
<?php } else { ?>
cya!
<?php } ?>
和imho这是因为每一行“说话”,当php标签之间有很多html时,这可能会有所帮助。
答案 2 :(得分:1)
这两种方法都可以接受。有些人认为替代语法(endif)在模板中更易读。恕我直言,具有现代语法着色/突出显示错误,不再适用。只需选择一种风格并坚持下去。
答案 3 :(得分:1)
这是一种风格选择。它们是类似的,一个并不比另一个好。
前者在某些情况下可能会很好,因为在HTML块集中间陷入困境时可能更容易阅读。
答案 4 :(得分:1)
我主要使用if / endif来停止和启动之间的php代码块,所以几乎总是在输出原始html时。
例如:
<?php if ($n == 3): ?>
Lorem ipsum.
<?php endif; ?>
至少在我看来,这看起来比以下更好:
<?php if ($n == 3) { ?>
Lorem ipsum.
<?php } ?>
答案 5 :(得分:1)
您可以同时使用两者,但优先样式和当前已知的样式是标准if(expr)
。