php xor运算符未按预期工作
我有以下代码。如果我分别运行每个条件,它可以正常工作,但只要添加“xor”或“or”或“or”| |运算符,它们似乎都不匹配 我知道这将是一件简单的事情,我错过了,但无法发现它。我用这个操作符错了吗php xor运算符未按预期工作,php,xor,Php,Xor,我有以下代码。如果我分别运行每个条件,它可以正常工作,但只要添加“xor”或“or”或“or”| |运算符,它们似乎都不匹配 我知道这将是一件简单的事情,我错过了,但无法发现它。我用这个操作符错了吗 if ($usercurrentpassword['password'] != $currentpasswordmd5 xor $usercurrentpassword['password'] != $currentpasswordsha1){ $a = "C
if ($usercurrentpassword['password'] != $currentpasswordmd5 xor $usercurrentpassword['password'] != $currentpasswordsha1){
$a = "Current passwords do not match";
return $a;
}
也许您应该使用括号:
if (($usercurrentpassword['password'] != $currentpasswordmd5) xor ($usercurrentpassword['password'] != $currentpasswordsha1)) {
就我而言,PHP(任何其他语言)中的XOR(独占析取)操作符是插入符号。试试看。您可能遇到了主持顺序问题。您的if语句中没有括号,因此我无法猜测您的预期执行顺序。已尝试使用括号,如下面的注释,但相同。如果我将语句更改为只检查一个变量,那么它可以正常工作,但不是非此即彼。此外,算法似乎是错误的-如果密码没有相同的MD5或SHA1,它将不会响应任何内容。也许问题在于你如何“编码”你的思想?算法的作用是什么?