Почему код PHP функционирует иначе, чем код Python?

$x = (False or 123)
echo $x
x= (False or 123)
print(x)

В PHP ответ 1 и в Python ответ 123,

Это почему?

1

Решение

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

-1

Другие решения

питон and а также or сделать «оценку Маккарти», которая возвращает последнее значение, см. https://stackoverflow.com/a/22598675/196206 или же Википедия.

PHP также выполняет оценку короткого замыкания, но всегда возвращается только логическое значение: http://php.net/manual/en/language.operators.logical.php

1

По вопросам рекламы [email protected]