那么问题就是自我解释.
在PHP中何时使用if/endif符号而不是标准if(something){}符号?
例:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
与:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
edo*_*ian 15
简短回答:
总是使用 if($something) { },几乎从不使用 if/endif.它是PHP 4.0.0以来的标准,虽然旧的语法不会消失,但这是每个人都期望的.
如果你真的在寻找一个可以使用if/endif的情况,那么当使用php作为模板语言时就是这样.
有些人喜欢这样的东西:
<?php if ($foo): ?>
Hi There
<?php else: ?>
cya!
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
比...更好
<?php if ($foo) { ?>
Hi There
<?php } else { ?>
cya!
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
和imho这是因为每一行"说话",当php标签之间有很多html时,这可能会有所帮助.
lon*_*day 15
其他人给出了"模板化"的答案,但没有真正解释原因.花括号非常适合表示块,但它们依赖于缩进来清晰地读取.所以这很清楚:
<?php
if (1 == 2)
{
while (1 < 2)
{
doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
很明显哪个支撑匹配哪个.
但是,如果你进入HTML块,你可能会完全停止缩进.例如:
<?php
if (1 != 2) { ?>
<div>This always happens! <?php while (true) { ?>
<p>This is going to cause an infinite loop!</p>
<?php }
}
Run Code Online (Sandbox Code Playgroud)
这很难理解.如果您使用该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;
Run Code Online (Sandbox Code Playgroud)
代码的内容更清楚地显示了正在做的事情.对于这种有限的情况,它更清晰.