这个问题已经很明确了。
在PHP中,我什么时候使用 if/endif
符号而不是标准的 if(某些条件){}
符号呢?
举个例子:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
对比:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
这个问题已经很明确了。
在PHP中,我什么时候使用 if/endif
符号而不是标准的 if(某些条件){}
符号呢?
举个例子:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
对比:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
其他人已经给出了答案 "用于模板编写",但并没有真正解释为什么。花括号非常适合表示块,但它们有点依赖于缩进才能清晰地阅读。因此,这是相当清晰的:
<?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;
代码的内容更清楚地展示了正在进行的操作。对于这种有限的情况,它的可读性更高。
if
语句? - Naftalielse
。 - Naftalielse
语句对应的哪个if
语句呢?在正则表达式中,我们使用括号进行匹配,但这里没有任何括号。 - Naftaliendif
是哪个:最近打开的尚未关闭的 if
块。 - lonesomeday简短回答:
始终使用 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 } ?>
我认为原因在于每行代码都有它的"语音",特别是当PHP标签中间有大量HTML代码时,这种语音就变得尤为重要。
if {}
本身并不是标准,只是在某些地方为了可读性而更受欢迎。例如,在一个模板中:<?php if ($var) { ?>yay!<?php } ?>
与 <?php if ($var): ?>yay!<?php endif; ?>
相比就显得非常丑陋。请注意,即使官方文档没有指出任何弃用或通知。 - Jimmy Sawczukendif
的主要原因之一... - ircmaxell两种方法都是可接受的。一些人认为在模板中使用替代语法(endif)更易读。但在我看来,随着现代语法着色/高亮错误的出现,这种说法已经不再正确。只需要选择一个样式并坚持使用即可。
在编写代码时,我通常使用if / endif来开始和结束php代码块,因此几乎总是在输出原始HTML时。
例如:
<?php if ($n == 3): ?>
Lorem ipsum.
<?php endif; ?>
在我看来,这比以下的代码更好:
<?php if ($n == 3) { ?>
Lorem ipsum.
<?php } ?>
这是一种风格选择。它们是类似的,没有一个比另一个更好。
前者在某些情况下可能很好,因为当深陷于 HTML 块集中时,阅读起来可能更容易。
你可以使用两种方式,但是首选的风格和目前已知的风格是标准的if(expr)
。