1. PHP / Говнокод #23519

    +1

    1. 1
    ideone.com/LfENd1

    Вот мне всегда говорили, что NaN не равен ничему включая себя, но PHP перевернул мой мир

    Запостил: d_fomenok, 12 Ноября 2017

    Комментарии (13) RSS

    • Один из них всегда говорит правду, другой всегда лжет
      Ответить
    • Nan равен true, но это не точно:
      $nan == true; // true
      $nan === true; // false

      https://ideone.com/jt6uoU
      Ответить
      • В PHP всё равно true, кроме того, что равно false?
        Ответить
        • В PHP всё «красиво», почти как в формуле для расчёта пенсии:

          http://php.net/manual/ru/types.comparisons.php

          При «гибком» сравнении (с помощью ==) ноль как число, ноль в строке ("0"), NULL, пустой массив, пустая строка равны false. Остальное равно true.

          При «жёстком» сравнении (с помощью ===) только true равно true и false равно false, всё остальное — не true и не false.
          Ответить
          • Настоящие цари всё сравнивают функцией memcmp, без всяких там заедушных == и ===
            Ответить
            • Функция wmemcmp сравнивает в два раза быстрее!
              Ответить
            • Вообще настоящие цари пишут свой цикл для обхода данных и сравнения. В каждом месте кода уникальный, потому что случаи бывают разные.
              Ответить
              • У настоящих царей нет циклов - всё заанроллено
                Ответить
              • Прямо как в го. Потому что типы бывают разные.
                Ответить
      • И эти люди смеются над джаваскриптом
        Ответить
        • Привычка. Сервер всегда был важнее. Без сервера браузеру показывать нечего. Народ с горем пополам осилил PHP и привык. Клиентские шкрипты всегда были ненужной питушнёю для рисования тикающих часиков и снежинок, а тут вдруг начали приложение писать.
          Ответить
        • Просто нужно отказаться == и везде использовать ===, а типы (при необходимости) преобразовывать явно. В JS, кстати, тоже.
          Ответить

    Добавить комментарий