if-else语句的末尾是否需要括号?

时间:2013-12-16 18:01:54

标签: php netbeans

我刚刚升级到netbeans 7.4,他们有一个代码提示功能,但他们最近添加了一个让我感到困惑的提示规则。 “If-Else语句必须使用大括号”,这是一个新的php标准吗?我通常不添加括号,除非它超过一行(例如下面的例子)。我知道不使用括号可能会让它更加混乱,但我认为在某些情况下它看起来很优雅......这是所有IDE都采用的路线吗?

if($auth==1){
   // Do a bunch of
   // stuff.
}else
   header('Location: /403/index.html');

enter image description here

2 个答案:

答案 0 :(得分:2)

  

这是一个新的php标准吗?

不是真的。这完全取决于用户。如果您愿意,可以在代码中使用它 - 这是您的编码风格。但是,Zend Coding标准要求您对所有ifelseelseif构造使用大括号:

来自documentation

  

PHP允许在某些情况下不使用大括号编写语句。这种编码标准没有区别 - 所有“if”,“elseif”或“else”语句都必须使用大括号。


  

据我所知,不使用括号可能会让它更加混乱,但我认为在某些情况下它看起来很优雅

如果if块包含多个条件,则最好使用大括号。比方说,例如:

if ($auth) {
   doStuff();
   anotherOne();
}

但是,如果您的代码只有一个条件,您可以不用括号编写它。例如:

if(is_numeric($n)) echo 'Foo';

对于非常简短的语句,没有必要使用大括号,但如果您的代码涉及多个条件,或者您正在编写另一个开发人员将要重用的代码,那么最好将它们包装在大括号中。这样,在将来查看代码时就不会有任何混淆。

答案 1 :(得分:0)

是的,这是一种防止开发人员犯错的方法,下次他们更改代码并添加另一个语句时。

这也是一个暗示性的特征,而不是规则。

默认情况下,所有IDE都实现了此功能(Visual Studio,Netbeans,Eclipse是其中的一些示例),尽管这不是语言编译器强加的规则。