在PHP中,即使在短条件语句中也应该使用花括号?

时间:2013-05-07 08:32:20

标签: php coding-style conditional-statements

在PHP中,我知道对于单语句条件,大括号不是必需。但这个问题是关于良好的编码风格。 (当然在谈论风格时,通常最好只使用项目中的一致风格,但是让我们忽略这个问题。)

所以:用大括号括起任何条件语句是不是更好的形式,或者在简单条件下不使用括号是否更好(例如更干净):

E.g。这样:

if (!file_exists($templatefile)) {
   throw new Exception('Template file does not exist');
}

或者这个:

if (!file_exists($templatefile))
    throw new Exception('Template file does not exist');

对此有任何共同的一致良好做法,还是仅仅取决于个人喜好?

3 个答案:

答案 0 :(得分:10)

我已经看到那些不使用花括号的人犯了太多错误,然后再添加一个额外的命令而忘记包装它。

我的态度是将其包装起来,以便于阅读和未来的可扩展性。

答案 1 :(得分:2)

良好编码风格的一条规则是:避免分心。所以有一个共同的方法来做到这一点 - 无论是单线还是多线都是要走的路:

if (!file_exists($templatefile)) {
   throw new Exception('Template file does not exist');
}

当然,这个 是主观的(但这是你问题的问题),并非所有程序员都会分心。但事实上,你的版本控制系统将是。如果您需要将单行if块更改为多行if块,是否需要触摸if条件?没有,因为它没有改变,对吧?但是如果你不使用括号,你仍然需要触摸那一行。这就是我所说的分心。所以这是给出的 less 主观论证。

正如您可以想象的那样,还有其他一些可以促进这种方法的论点,比如当您需要调试代码时,需要从一个切换到多行以进行各种更改等等。所以请保持对齐整个代码库,如果它是if块,那就是if块。

为了好玩,总是抛出“if”块:

if (!file_exists($templatefile)); {
   throw new Exception('Template file does not exist');
}

答案 2 :(得分:0)

从开发人员到开发人员,这完全取决于您。 只需按照代码中的任何一个approch进行操作,不要混淆,这会在将来产生问题