@ak_wi

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

$x - ?
var_dump(!is_bool($x) && $x == '1' && $x == '3' && $x == '5'); // bool(true)
  • Вопрос задан
  • 115 просмотров
Решения вопроса 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 ₽
Сбер Москва
До 240 000 ₽
RecruitIT Москва
от 120 000 до 150 000 ₽
21 окт. 2020, в 13:40
35000 руб./за проект
21 окт. 2020, в 13:24
700 руб./за проект