我想知道if语句的以下2种语法之间是否有任何性能差异(类似于其他循环 - while,for,foreach等):
if(..) {...}
else {...}
和
if(..) : ...
else : ...
endif;
使用一个优于另一个的优势吗?
答案 0 :(得分:3)
无。
语法样式仅用于代码的可读性。 各种组织可能更喜欢各种风格,但没有性能影响。
答案 1 :(得分:3)
您通常在视图(模板)中使用替代语法(if (condition):
endif;
),因为它更容易在HTML中阅读。例如:
<?php foreach ($items as $item): ?>
<article class="item">
<h1><?php echo $item->title; ?></h1>
</article>
<?php endforeach; ?>
比阅读更容易阅读:
<?php foreach ($items as $item) { ?>
<article class="item">
<h1><?php echo $item->title; ?></h1>
</article>
<?php } ?>
特别是当您添加更多控制结构时,例如if
,for
等。如果您在HTML中使用花括号,则更难区分哪个右花括号属于哪个开口花括号,而使用endif
所知的替代语法,您正在寻找开场if:
语句。
希望有所帮助。
答案 2 :(得分:1)
就个人而言,如果我混合PHP和HTML,我只使用if():
语法:
<div class="stuff">
<?php if($a === $b): ?>
<span>Hello</span>
<?php else: ?>
<input type="checkbox" />
<?php endif; ?>
</div>
我认为这看起来比使用if(){
更好,但在“普通”php代码(不与HTML混合)中,我使用if(){
语法。
<?php
if($a === $b){
runThisCode();
}
else{
otherCode();
}
?>
答案 3 :(得分:0)
没有性能差异的语法。我个人使用第一个用于核心逻辑,并在视图中使用第二个示例,或者当php与html交互或吐出时。因为我发现在不添加\n
\t
的情况下控制最终输出更容易。
除了可读性之外没有任何优势。