Почему не срабатывает условие ===?

Доброго дня всем.
Столкнулся с ситуацией, когда на хостинге не срабатывает условие сравнения с тремя знаками равенства ===
Но если спользовать два знака ==, то все работает нормально. И такая ситуация только на реальном хостине, на локальном все хорошо. Обратился к хостеру за разъяснением, тот ничего вразумительного не ответил.
Может у кого было подобное, подскажите, как справиться с проблемой, а то не хочется во всем коде вносить исправления.
Спасибо
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 4
aleksejjjj
@aleksejjjj
Используйте приведение типов. В зависимости от версии и настроек ПО в коде вы можете получить как 777 так и '777' отсюда ваша проблема.
$valueFromDB = '777';

if ((int)$valueFromDB === 777) {
    // Всё работает как вы хотели
}
Ответ написан
@Araya
Потому что разные типы данных, очевидно же.
Что с чем сравниваете?
Ответ написан
@FanatPHP
В порядке благотворительности.
На хостинге не работае mysqlnd, и поэтому все значения из БД возвращаются строками.
Либо пинать хостинг, либо менять хостинг.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы