$x = (False or 123)
echo $x
x= (False or 123)
print(x)
В PHP ответ 1
и в Python ответ 123
,
Это почему?
PHP: $ x = (False или 123). Ложь — ложь (!), 123 — истина, ложь или истина == истина, поэтому $ x становится истинным (или 1, когда вы его печатаете.
Python: делает или операция сначала, затем присваивает результат x. int (False) равно 0, int (123) равно 123, поэтому он получает 123. В Python есть хитрость, в которой значение or возвращает значение, которое сделало его истинным, а не логический результат. Смотрите эту страницу:
http://www.diveintopython.net/power_of_introspection/and_or.html
питон and
а также or
сделать «оценку Маккарти», которая возвращает последнее значение, см. https://stackoverflow.com/a/22598675/196206 или же Википедия.
PHP также выполняет оценку короткого замыкания, но всегда возвращается только логическое значение: http://php.net/manual/en/language.operators.logical.php