积木 - 花括号/没有花括号?

Avi*_*ian 5 php block

当我开始开发时,我遵循了总是使用{}(花括号)来封闭块的教程.但是,当我开始查看其他人的代码(例如GitHub上的类,或者通常只是基本教程所显示的代码)时,我也看到了块语句而没有被包含在内{},例如;

if($var < 15)
     $string = 'Hello, Jimmy!';
elseif($var >= 15)
     $string = 'Hello, Anne!';
Run Code Online (Sandbox Code Playgroud)

是相同的

if($var < 15) { 
    $string = 'Hello, Jimmy!';
} elseif($var >= 15) {
    $string = 'Hello, Anne!';
}
Run Code Online (Sandbox Code Playgroud)

我从来没有使用过没有封闭的块{},但是我今天使用它们并且我开始看到这样做的效率(它看起来也很清晰,因为我经常发现我的功能充满了{}循环,条件等等) .

我问的是;

a)没有花括号的块有任何限制(;我注意到在输入单行后我的IDE从缩进中退回并在if()条件后返回?

b)在不使用时,是否有最佳实践{}

任何答案,特别是那些公司.关于块大括号使用惯例的背景/文档与不使用它们将非常感激,因为我真的想了解花括号的用法:)!

Ali*_*guy 8

最佳做法是始终使用它们.对于其他开发人员来说,添加一行代码或删除一行代码并且无意中完全破坏条件非常容易.


Jak*_*kub 4

您可以省略{}一行:

if(something)
  do something else
Run Code Online (Sandbox Code Playgroud)

但是你不能忽略它并让它继续像这样:

if(something)
   do one thing
   do another
   do some more
Run Code Online (Sandbox Code Playgroud)

上面的示例只有 1 个条件元素(“做一件事”)。其余的将无条件运行。

是的,我以前见过没有 的草率方法{},我自己更喜欢使用它{}来分离逻辑,并且它更易于阅读。

因此请坚持{}在代码中使用。