Ant*_*ony 0 php error-handling logic
对不起,如果这是一个comp-sci 101问题.我只是不确定我是否遗漏了一些明显的东西.
所以让我们说一些用户输入会抛出错误,我想抓住它并返回一些反馈.错误将是一个数字,0 - 8. 0表示"无错误".如果错误是3,我想给用户非常具体的反馈(不允许数字,让我们说).对于其他7种可能性,我只想结束脚本并回显错误.
我正在解决这个问题并决定采用这种方式:
$no_errors ($_error != 0 || $_error != 3) ? FALSE : TRUE;
if (!$no_errors)
echo $error_msg['$_error'];
$error_3 ($no_errors && $_error == 3) ? TRUE : FALSE;
if ($error_3)
bunch of stuff happens;
else
bunch of other stuff;
Run Code Online (Sandbox Code Playgroud)
无论如何,我当时注意到第一行的OR运算符,并且认为使用AND运算符可能更好/更安全.但是我想的越多,我看到的差别越小.
所以真正的问题是,如果你想消除特定变量的两种可能性,那么AND和OR是相同的,还是逻辑上/功能上更优化?
gkr*_*ers 20
如果使用switch语句,它将更具可读性:
switch ($_error) {
case 0;
nothing happens;
break;
case 3:
bunch of stuff happens;
break;
default:
bunch of other stuff;
break;
}
Run Code Online (Sandbox Code Playgroud)
首先,我想我会建议使用另一种识别错误的方法,而不是使用“幻数”。它们很难维护,因为您很容易忘记“3”的含义。看起来您的语言是 PHP,它支持异常。我建议使用它们,您可以在这里阅读有关它们的更多信息: http: //dk.php.net/exceptions
至于逻辑运算符,实际上没有任何被认为是“良好实践”的。使用你想要的。如果您无法确定表达式何时为真/假,请尝试制作真值表: http: //en.wikipedia.org/wiki/Truth_table