ФорумПрограммированиеPHP для идиотов → Равна ли переменная 0

Равна ли переменная 0

  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 18:01, спустя 28 минут 24 секунды


    2. Когда читаешь код и видишь выражение
     (int)$_REQUEST['var'] == 0
    , то приходится задуматься, а что оно делает? Когда видишь
    $_REQUEST['var'] === '0'
    ответ на тот же вопрос становится очевидным.

     (int)$_REQUEST['var'] == 0

    и
    $_REQUEST['var'] === '0'

    разные вещи. В первом варианте переменная принудительно приводится в числовому варианту, а во-втором варианте идет сравнение переменной с проверкой по типу "строка", так как ноль заключен в кавычки.
    И вообще, хватит тут кидатся какашками :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 февраля 2010 г. 19:46, спустя 1 час 45 минут 6 секунд

    Givi, дело в том, что когда интепретатор пхп при сравнении встречает хотя бы одно !!!число!!!, то он обе части приводит к числу, а тут евг правильно сказал, что если его ЗАСТАВИТЬ СРАВНИВАТЬ СТРОКИ СО СТРОКАМИ, то это будет тоже самое что и ===, я за единственное не уверен - '0' не будет ли false'ом, пхп - ебнутая вещь ))
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 23:24, спустя 3 часа 38 минут 41 секунду

    phpdude, ну это я понимаю (я про принудительное изменение типа пыхой). Но по всем правилам:
    '0' - строка
    0 - число
    false - булевое.
    Следовательно:
    '0' !== 0 !== false, а вот '0' == 0 == false если иного не указано.

    п.с. На практике пока не проверял, но моя логика работает так. Проверю как смогу и признаю в себе либо дурака либо гения =)))
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 14 февраля 2010 г. 23:42, спустя 17 минут 43 секунды

    товарищи, вы ебанулись ?
    две странницы обсуждения на тему "Равна ли переменная 0"
    ппц….
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 14 февраля 2010 г. 23:52, спустя 10 минут 23 секунды

    NRG, а хуле, выходные ж таки. Можно мозгу отдохнуть малехо :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 февраля 2010 г. 0:34, спустя 41 минуту 26 секунд

    '0' == 0 == false


    то есть ты рассуждаешь, что

    '0' == 0 - будет false?

    я тебя раочарую


    они оба приводятся к int, получается 0(false) == 0(false) что естественно тру

    boolean true

    Спустя 14 сек.
    зы: я мог тебя неправильно понять)
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 0:59, спустя 24 минуты 42 секунды

    Разовью тему. Чем в отличаются
    if ($_GET['id'] == '0')

    от
    if ($_GET['id'] === '0')

    ?
    И почему вы все пишите с тремя равно?
    PS По-моему два равно лучше ставить потому, что гет в строковом всегда приходит (или нет?), а '0' явно указан в стоковом. А вот что быстрее работает я не знаю, но мне почему то кажется, что ==.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 февраля 2010 г. 1:20, спустя 21 минуту 46 секунд

    А вот что быстрее работает я не знаю, но мне почему то кажется, что ==.
    а ты когда уборку в комнате делаешь, ты тоже на колво оставшихся пылинок дрочишь?
    Спустя 82 сек.
    И почему вы все пишите с тремя равно?
    потому что ХОТИМ сравнивать ТИПЫ и ЗНЧЕНИЯ переменных, и ОТКАЗАТЬСЯ от АВТОМАТИЧЕСКОГО приведения ТИПОВ.

    что гет в строковом всегда приходит (или нет?), а '0' явно указан в стоковом.
    в ПХП я бы сам себе не верил, можешь в одном случае поулчить инт а не строчку, и вот тогда ты поимеешь горя ;)
    Сапожник без сапог
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 1:30, спустя 9 минут 52 секунды

    Понятно)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 15 февраля 2010 г. 10:36, спустя 9 часов 6 минут 3 секунды


    '0' == 0 == false



    Спустя 14 сек.
    зы: я мог тебя неправильно понять)

    В данном случае я не совсем корректно выразился. Пересмотрел и понял, что смотрю только слева-направо (думаю иначе, но именно тут и ошибка, что не сказал как думаю).
    Короче, '0' == 0 - тру, 0 == false - тру, '0' == false - тру. Короче, приведение типов делает свое дело, и в итоге результаті будут полностью противоположны тем, как если использовать три знака "=" (при трех равно в каждом таком выражении результатом будет фальс, а не тру). Щяс заодно таки проверю, потому как дома не было доступа к серверу какому-нить.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 февраля 2010 г. 18:34, спустя 7 часов 57 минут 32 секунды

    Щяс заодно таки проверю, потому как дома не было доступа к серверу какому-нить.
    купи денвер отправив смс с текстом "to dude" на которткий номер 3434
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2010 г. 0:29, спустя 5 часов 55 минут 24 секунды

    phpdude, не, он мне сначала понравился.
    А теперь юзаю виртуальные хостинги - уж коли "нагружу" сервер, то и отвечать буду более-менее (ну как минимум нужно будет искать новый), а следовательно и думать нужно больше чтоб изначально не напартачить. Да и скорость обработки на виртуалке тоже меньше, потому интереснее сделать чтоб скрипт отрабатывал все быстрее и быстрее :)

    А ещё, главная причина - стараюсь дома работать по-минимуму (и то, в основном верстка), так как ленивый и хочу отдыхать.
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 16 февраля 2010 г. 1:07, спустя 37 минут 16 секунд


    товарищи, вы ебанулись ?
    две странницы обсуждения на тему "Равна ли переменная 0"
    ппц….
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2010 г. 1:10, спустя 3 минуты 30 секунд

    NRG, уже даже я охуеваю)
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2010 г. 14:19, спустя 13 часов 9 минут 2 секунды



    товарищи, вы ебанулись ?
    две странницы обсуждения на тему "Равна ли переменная 0"
    ппц….

    дуд еще не отредактировал твое сообщение? странно..)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!