是'否则'退出#39;中的脚本时需要?

时间:2014-08-21 18:06:01

标签: php if-statement

我有一个问题。我(我想)知道这可能会有所作为,但我很好奇什么是更好的'。

我们说我们有一个表单,我们想要一个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...
      }
   }
}

我的问题如下:是否有必要写“其他'每次,因为我们退出剧本?

我一直这样做,因为我是这样学习的。正如你所看到的,我对代码还很陌生。

节省大量空白,回答我的问题! :d

提前致谢!

1 个答案:

答案 0 :(得分:2)

我发现,当与我构造代码的方式配对时,使用else-without-an-if表示没有考虑逻辑情况。而且,由于我的编码首选项,我会使用配对的if-else语句(或者使用Gio所示的if-elseif-else)编写上面的代码。

但是,将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...