Разница между или или xor
Мой вопрос связан с оператором. Сегодня я изучал операторов. Путаница. В PHP какая разница между "или" и "xor". Я знаю, что оба они связаны с булевым выражением. Но не могу найти оригинальную разницу.
Кто-нибудь, пожалуйста, помогите понять это более четко.
Ответы
Ответ 1
Это связано с взаимным исключением. 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
истинно, но не оба (как для or
).
Ответ 2
xor означает "исключить" или "исключить". То есть, это или, но с единственным изменением, если оба параметра для операции верны, ответ неверен.
A xor B == (A or B) && !(A and B)
Ответ 3
Разница заключается в вводе четного количества 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
Ответ 4
Другой способ: ИЛИ можно рассматривать как коннектор AND/OR. Один или оба варианта могут быть истинными или выбранными. XOR, с другой стороны, можно охарактеризовать как "реальное" ИЛИ. Только один из двух вариантов может быть правдой (или выбран).
Ответ 5
один является исключительным или → xor, а другой является или означает, что по крайней мере одно из условий выполняется в таблице истинности. Или не является взаимоисключающим, xor is.
Ответ 6
введите описание изображения здесь
![enter image description here]()
XOR эксклюзив. или включительно