tg-me.com/php_interview_lib/790
Last Update:
Почему выражение $x = true and false;
выводит bool(true)
?
В выражении $x = true and false;
результатом будет bool(true)
из-за особенностей приоритетов операторов в PHP.
📌 Приоритет операторов
В PHP оператор присваивания =
имеет более высокий приоритет, чем логический оператор and
. Это означает, что выражение интерпретируется как:($x = true) and false;
Здесь сначала выполняется присваивание $x = true
, а затем результат этого выражения (true
) используется в логической операции true and false
, которая возвращает false
. Однако это не влияет на значение переменной $x
, которая уже была установлена в true
.
✅ Как получить ожидаемый результат
Если вы хотите, чтобы переменная $x
получила результат логического выражения true and false
(то есть false
), необходимо использовать скобки для изменения порядка выполнения:$x = (true and false);
Теперь сначала выполняется логическая операция true and false
, результатом которой является false
, и затем это значение присваивается переменной $x
.
🔍 Альтернативный подход
Также можно использовать логический оператор &&
, который имеет более высокий приоритет, чем and
:$x = true && false;
В этом случае выражение интерпретируется как:$x = (true && false);
И переменной $x
будет присвоено значение false
, как и ожидалось.
BY Библиотека собеса по PHP | вопросы с собеседований
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/php_interview_lib/790