& # 39;其他# 39;退出脚本'if'时需要


Is 'else' needed when exitting script in 'if'?

我有一个问题。我(想我)知道这两种方法都行得通,但我很好奇哪种方法更"正确"。

假设我们有一个表单,我们需要一个PHP脚本来处理用户输入。PHP脚本将检查输入是否被认为是垃圾邮件(与蜜罐方法一样),匹配CAPTCHA,验证内容,…每次条件返回false时,我们退出脚本(使用exit()die())。

代码假设是这样的:

if($input=='spam') {
   die('This is spam');
} else {
   if(!validation($input)) {
      die('Input is not valid');
   } else {
      if(!matchCaptcha($input['captcha'])) {
         die('Captcha doesn''t matcha');
      } else {
         //Process input...
      }
   }
}

我的问题如下:是否有必要每次都写"else",因为我们退出了脚本?

我一直是这样做的,因为我就是这样学会的。如你所见,我对代码还是个新手。

节省很多空格,回答我的问题!: D

提前感谢!

我发现,当与我构建代码的方式搭配使用时,使用else而不使用if表示没有考虑逻辑情况。而且,由于我的编码偏好,我会像上面那样使用成对的if-else语句(或使用if-elseif-else,如Gio所示)编写代码。

然而,将if (..) die ..逻辑扁平化到单个级别是没有问题的——这也适用于return,抛出异常,以及任何其他"跳过剩余代码"的方法。原始代码在语义上等同于下面的浅层结构。

if($input=='spam') {
  die('This is spam');
}
if(!validation($input)) {
  die('Input is not valid');
}
if(!matchCaptcha($input['captcha'])) {
  die('Captcha doesn''t matcha');   
}
//Process input...