现在有两次,不知道问题是什么,我有这个正常的if语句,带有OR属性
if((checkBlock($showU['id'], $USER, 'Wall') != 1) || (checkBlock($showU['id'], $USER, 'Wall', 1) == 1)) {
我希望它检查第一个checkBlock是否为!= 1,或者如果checkBlock是== 1
首先,如果checkBlock应该为true,如果我阻止了用户并且用户试图访问我。
如果我阻止了某个用户,并且我试图访问他,那么第二个应该是真的。
第一个if语句与上面的代码一起使用,但不是if语句(如果我已经阻止并访问他)。
但是如果我删除第一个语句,第二个工作..但我想检查两个。
我怎样才能让他们检查工作?我试过了OR,但没有影响到这个问题。
答案 0 :(得分:1)
由于短路布尔评估,PHP在第一次检查时跳过第二次检查。也就是说,如果你有(A || B)并且A是真的,则不需要检查B,因为你的条件已经过了。如果要检查两种情况,则需要使用AND而不是OR。
答案 1 :(得分:1)
你的起始条件没有意义,无论你使用AND还是OR,你检查相同的值(考虑你的函数的解释值,如:1!= 1 OR 1 == 1,这没有意义)。请考虑检查值和逻辑。
答案 2 :(得分:0)
如果你想同时检查它们,它应该是AND(&&
),而不是OR