Задать вопрос

Вопрос PHP программистам: почему «top» == 0 есть true?

Здравствуйте!

Изучая php я все больше удивляюсь некоторым конструкциям языка. Конечно для новичка это нонсенс , но для
профи это пустяки. Вопрос как уже понятно с заголовка вопроса следующий:
Почему этот код работает? Я "порылся" в документации но видимо плохо искал или не умею искать.
if("top" == 0)echo 111;

С Уважением,
Алмик
  • Вопрос задан
  • 2418 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@iznaur
потому что, ты сравниваешь строку и число,тогда top переводится в int (который равен 0),как итог значения равны,используй ===
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ написан
Комментировать
Writerim
@Writerim
Заполнить позже...
echo (int) "top"; 

// 0
Ответ написан
Комментировать
hedint
@hedint
Senior front-end developer
Вам не кажется, что сравнивать строку с числом - тоже самое, что сравнивать 10 килограмм картошки и эмоциональное удовлетворение от просмотра концерта?
Если сравнивать несравнимое - в любом языке с динамической типизацией можно получить абсолютно идиотские результаты.
Для корректного сравнения таких величин есть оператор "тождественно равно ===" - он проверяет типы (вообще - обычно стараются такое не сравнивать)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽