2012-09-21 47 views
2

我在想,如果有以下2语法的if语句之间的性能差异(同样,对于其他循环 - ,而对于,的foreach等):if-else语句的语法偏好

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

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

使用其中一种的优势?

+3

后者更常用于视图中,因为它的可读性和标记一起使用。这是唯一的区别 –

+0

我个人完全不关心PHP的性能。与大型SQL查询或客户端事物相比,使用APC缓存和PHP执行时间可以忽略不计。 只使用回声一次或尽可能少。继续在一个变量中连接,最后回显。 在编写php代码时,只关注保持以后轻松读取和修改。 – user1365013

回答

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:声明。

希望有所帮助。

+0

从哪里可以学到这样的最佳实践,除了朋友/同事/讨论板,因为那些只是随机发生:) –

+0

真的有各种各样的来源。只要继续练习,继续阅读文章等,没有快捷的方法。您可以成为网站开发人员十年,并且还有更多需要了解的内容。这是我们行业最好的事情。 –

3

无。

语法样式仅用于代码的可读性。 各种组织可能更喜欢各种风格,但没有性能影响。

1

就个人而言,我只用了if():语法,如果我是混合PHP和HTML:

<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(); 
} 
?> 
0

不,没有性能差异只有语法。我个人首先使用核心逻辑,并在视图内使用第二个示例,或者当php与html进行交互或吐出html时。因为我发现在不添加\n\t的情况下更容易控制最终输出。

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