if-else语句语法首选项

时间:2012-09-21 17:54:46

标签: php syntax

我想知道if语句的以下2种语法之间是否有任何性能差异(类似于其他循环 - while,for,foreach等):

 if(..) {...}
 else {...}

if(..) : ...
else : ... 
endif;

使用一个优于另一个的优势吗?

4 个答案:

答案 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 } ?>

特别是当您添加更多控制结构时,例如iffor等。如果您在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的情况下控制最终输出更容易。

除了可读性之外没有任何优势。