Php 是';其他';在'中退出脚本时需要;如果';?
我有个问题。我(想我)知道这两种方法都会奏效,但我很好奇什么更“正确” 假设我们有一个表单,需要一个PHP脚本来处理用户输入。PHP脚本将检查输入是否被视为垃圾邮件(如蜜罐方法),匹配验证码,验证内容,。。。每次条件返回false时,我们都会退出脚本(使用Php 是';其他';在'中退出脚本时需要;如果';?,php,if-statement,Php,If Statement,我有个问题。我(想我)知道这两种方法都会奏效,但我很好奇什么更“正确” 假设我们有一个表单,需要一个PHP脚本来处理用户输入。PHP脚本将检查输入是否被视为垃圾邮件(如蜜罐方法),匹配验证码,验证内容,。。。每次条件返回false时,我们都会退出脚本(使用exit()或die()) 假设代码如下所示: if($input=='spam') { die('This is spam'); } else { if(!validation($input)) { die('Inpu
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语句编写代码(或者用Gio所示的
if-elseif-else
)
但是,将if(..)die..
逻辑展平到单个级别没有问题-这也适用于返回
、抛出异常和任何其他“跳过还押代码”的方法。原始代码在语义上等价于以下较浅的结构
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...
它不需要else或elseif块。它不是必需的,但如果有不良做法的味道,则需要深度嵌套:例如,在这里,验证类可以通过一些检查
foreach
,如果失败则返回false,如果用另一个方法请求,则提供错误字符串。这样,您就可以在不增加级别的情况下添加额外的检查,您可以组织您的检查,您可以重新使用您的检查,并且如果需要额外的检查,该类的“使用者”无需更改其代码。谢谢@Wrikken,这非常有意义!