За последние 24 часа нас посетили 49186 программистов и 1758 роботов. Сейчас ищут 745 программистов ...

вопрос по проверке

Тема в разделе "PHP для новичков", создана пользователем vikrorpert, 7 ноя 2012.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    оправдана ли такая проверка
    Код (Text):
    1.  
    2. if (is_array($а) && isset($а['1']['2']))
    или лучше сразу проверять

    Код (Text):
    1.  
    2. if (isset($а['1']['2']))
     
  2. VampiR_WAR

    VampiR_WAR Активный пользователь

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Наверное достаточно
    Код (PHP):
    1. if (isset($a){} 
    Добавлено спустя 2 минуты 14 секунд:Зависит от того что проверяем. Если нужно быть уверенным что $а['1'] существует тогда 1ый вариант.
    А если нужно проверить существование то if (isset($a)
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    if (is_array($а) && isset($а['1']['2']))


    Код (PHP):
    1. $a=array(0);
    2. if(isset($a,$a[0])) {
    3.     echo $a[0];
    4. } 
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    некорректная замена.
    ибо сработает даже если $a не является массивом, а строкой, например $a='0';
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Естественно сработает...

    Код (PHP):
    1. $a=(array)'1';
    2. if(is_array($a) && isset($a[0])) {
    3.     echo $a[0];
    4. } 
    А вот тут стоит задуматься)
     
  6. Gold Dragon

    Gold Dragon Активный пользователь

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
    Что-то вы тут совсем намудрили... Правильно сказал VampiR_WAR, всё зависит что проверяем... Есть всего три варианта

    1. Существует ли вообще переменная isset($a)
    2. Является ли переменная массивом is_array($a)
    3. Существует ли в массиве соответствующий ключ isset($a[0]) или array_key_exists(0, $a)

    Вот и выбирай что нужно

    А что тут задумываться? Строка '1' преобразуется в массив с ключом 0 и значением '1'