我正在我的程序中编写部分来更新用户,并且有密码和确认密码。我不想对数据库中的密码字段做任何事情,除非他们填写了这些字段。
所以我有错误检查:
if(($sql['password']!="") && ($sql['cpassword']!=""))
{
if($sql['password'] == $sql['cpassword'])
{
//update
}
}
但是,如果他们只填写了一个密码字段,我想写一个快速行来抛出错误消息。所以我想:
if($sql['password'] ^ $sql['cpassword'])
{
echo You must fill out <i>both</i> password fields and they <i>must</i> match.";
}
会做,但似乎没有。然后我添加了一个 NOT 运算符!,这似乎工作得很好,但是如果两个字段都没有,我仍然会收到错误消息:(
从我可以从这个答案中看到的逻辑来看,简单的 XOR 似乎可以工作。但它没有,有人可以向我解释为什么吗?