Что выведет код 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 ошибок.