逻辑运算符:是否优于OR?

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)


Ulr*_*sen 5

首先,我想我会建议使用另一种识别错误的方法,而不是使用“幻数”。它们很难维护,因为您很容易忘记“3”的含义。看起来您的语言是 PHP,它支持异常。我建议使用它们,您可以在这里阅读有关它们的更多信息: http: //dk.php.net/exceptions

至于逻辑运算符,实际上没有任何被认为是“良好实践”的。使用你想要的。如果您无法确定表达式何时为真/假,请尝试制作真值表: http: //en.wikipedia.org/wiki/Truth_table