我的问题与运营商有关。今天我研究了运营商。有困惑。在PHP中,“或”和“xor”之间有什么区别。我知道它们都与布尔表达式有关。但找不到原来的差异。
任何人都应该帮助更清楚地理解它。
答案 0 :(得分:40)
它与mutual exclusion有关。 xor
是独家的。 or
具有包容性。
真值表比较
$x $y ($x or $y) ($x xor $y)
0 0 0 0
1 0 1 1
0 1 1 1
1 1 1 0
注意:最后一种情况的区别。当xor
或$x
为真时,$y
只有 true ,而不是两者都是or
。
答案 1 :(得分:12)
xor表示“独占或”。也就是说,它是或者,但是如果单个更改,如果操作的两个参数都为真,则答案是错误的。
A xor B == (A or B) && !(A and B)
答案 2 :(得分:10)
差异在于输入偶数1(或真):
true or true = true
true xor true = false
true or true or true = true
true xor true xor true = true
true or false or true = true
true xor false xor true = false
OR的真实表:
in1 | in2 | out
-------|-------|-----
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1
XOR真相表:
in1 | in2 | out
-------|-------|-----
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
答案 3 :(得分:3)
另一种方式: OR 可以看作 AND / OR 连接器。一个或两个选择可以是真实的或选择的。另一方面,XOR可以被描述为“真正的”OR。两种选择中只有一种可以是真实的(或选择的)。
答案 4 :(得分:2)
一个是独家的或 - > xor,另一个是或表示在真值表中满足至少一个条件。或者不相互排斥,xor是。
答案 5 :(得分:0)