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

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

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

С Уважением,
Алмик
  • Вопрос задан
  • 2417 просмотров
Решения вопроса 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 килограмм картошки и эмоциональное удовлетворение от просмотра концерта?
Если сравнивать несравнимое - в любом языке с динамической типизацией можно получить абсолютно идиотские результаты.
Для корректного сравнения таких величин есть оператор "тождественно равно ===" - он проверяет типы (вообще - обычно стараются такое не сравнивать)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы