@ak_wi

Нестрогое сравнение: что не является bool, но при сравнении со строкой дает true?

$x - ?
var_dump(!is_bool($x) && $x == '1' && $x == '3' && $x == '5'); // bool(true)
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
¯\_(ツ)_/¯

$x = new class {
    private $index = 0;
    private $nums = ['1', '3', '5'];

    function __toString()
    {
        return $this->nums[$this->index++];
    }
};

var_dump(!is_bool($x) && $x == '1' && $x == '3' && $x == '5');


Result:
bool(true)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
RecruitIT Москва
от 100 000 до 160 000 ₽
Simtech Development Санкт-Петербург
от 100 000 ₽
Сбер Москва
До 240 000 ₽
30 окт. 2020, в 05:59
5000 руб./за проект
30 окт. 2020, в 03:15
2500 руб./за проект