ФорумПрограммированиеPHP для идиотов → isset vs array_key_exists

isset vs array_key_exists

  • AlexB

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

    Spritz 21 февраля 2014 г. 6:29

    $a = array('key' => 'value');

    Всю жизнь я писал:
    if (isset($a['key']))

    вместо:
    if (array_key_exists('key', $a))

    потому как буков меньше. И даже холиварил на эту тему. И даже переубеждал оппонента. Теперь я уверен, что isset это категорически неправильно. Кто угадает почему?
  • Sinkler

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

    Spritz 21 февраля 2014 г. 6:33, спустя 3 минуты 48 секунд

    если value будет null isset вернёт false

    Спустя 129 сек.

    и ты там, наверное, хотел написать

    if (isset($a['key']))
    
  • vasa_c

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

    Spritz 21 февраля 2014 г. 6:38, спустя 5 минут 21 секунду

    isset катеогрически правильнее для одних задач и неправильнее для других :)

    чуть более интересный срач по этой теме, как ни странно на йобоном пхпфоруме: http://phpforum.ru/index.php?showtopic=79233&hl=
  • AlexB

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

    Spritz 21 февраля 2014 г. 6:38, спустя 5 секунд

    Верно, поправил …
    Речь идет о тех случаях, когда наличие ключа хотят проверить …
  • artoodetoo

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

    Spritz 21 февраля 2014 г. 7:26, спустя 47 минут 35 секунд

    разницу знаю (уже знаю ;) но в большинстве случаев таки isset абсолютно подходит.
    я бы сказал очень редко когда $a['key'] === null это нормально.
    к nullable переменным/полям вообще с большим недоверием отношусь. они бля такие внезапные и непредсказуемые.
    ιιlllιlllι унц-унц
  • AlexB

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

    Spritz 21 февраля 2014 г. 7:50, спустя 23 минуты 41 секунду

    @artoodetoo, запросто может быть null. Например, составляешь массив плейсхолдеров для вставки в SQL, и некоторые поля могут как строку содержать так и null для вставки в базу.
  • phpdude

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

    Spritz 21 февраля 2014 г. 8:10, спустя 20 минут 28 секунд

    пхп такое пхп.
    Сапожник без сапог

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