Что выведет код Junior Типы и строгая типизация спрашивают часто обновлено

Нестрогие сравнения в PHP 8

Вопрос

Что выведет скрипт (PHP 8.3)? По строке на каждый вывод.

<?php
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("10" == "1e1");
var_dump(100 == "1e2");
var_dump(null == false);
var_dump("abc" == 0);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: bool(false), bool(true), bool(true), bool(true), bool(true), bool(false). PHP 8: 0 == "a" сравнивает строки "0" и "a": false.

Что выведет

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Разбор

PHP 8: 0 == "a" сравнивает строки "0" и "a": false. "1" == "01" и "10" == "1e1" это две числовые строки, они сравниваются как числа: true. 100 == "1e2" число и числовая строка: true. null == false: оба ложные, true. "abc" == 0 то же, что первый случай: false.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.