我有一个问题。我(我想)知道这可能会有所作为,但我很好奇什么是更好的'。
我们说我们有一个表单,我们想要一个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
提前致谢!
答案 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...