За последние 24 часа нас посетили 23362 программиста и 1550 роботов. Сейчас ищут 865 программистов ...

и как с таким бороться - array_search

Тема в разделе "PHP для новичков", создана пользователем Slavka, 31 янв 2017.

  1. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    взял тупо пример с сайта и немного откорректировал

    PHP:
    1. echo "<plaintext>";
    2.  
    3. $array = array( 'blue',  'red', 'green', 3 => 'red');
    4.  
    5. $key = array_search('green', $array); // $key = 2;
    6. echo $key."|\t\r";
    7. if ($key==false) { echo 'я говорю что green нету , а он есть !';}
    8. $key = array_search('red', $array);   // $key = 1;
    9. echo $key."|\t\r";
    10. if ($key==false) { echo 'я говорю что red нету , а он есть !';}
    11. $key = array_search('blue', $array);   // $key = 1;
    12. echo $key."|\t\r";
    13.  
    14. if ($key==false) { echo 'я говорю что blue нету , а он есть !';}
    http://phpfiddle.org/main/code/qbtd-3qcn



    вот сижу и охереваю и понимаю что он прав .. ведь 0 это false
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Последний $key Будет 0. Строгое сравнение бы использовать
    PHP:
    1. $array = array('blue', 'red', 'green', 3 => 'red');
    2.  
    3. $key0 = array_search('green', $array); // $key = 2;
    4. var_dump($key0);
    5. if ($key0 == false) {
    6.     echo 'я говорю что green нету , а он есть !';
    7. }
    8. $key1 = array_search('red', $array);   // $key = 1;
    9. var_dump($key1);
    10. if ($key1 == false) {
    11.     echo 'я говорю что red нету , а он есть !';
    12. }
    13. //var_dump($array);
    14. $key2 = array_search('blue', $array);   // $key = 1;
    15. var_dump($key2);
    16.  
    17. if ($key2 === false) {
    18.     echo 'я говорю что blue нету , а он есть !';
    19. }
    Код (Text):
    1. int 2
    2.  
    3. int 1
    4.  
    5. int 0
     
    denis01 нравится это.
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Добро пожаловать в чудесный мир.
    Код (Text):
    1. 0 == false ;// true
    2. 0 === false;//false
    Читай документацию. Везде, в каждом месте, где возвращаемыми значениями могут быть как 0, так и false, прям в красном прямоугольнике пишут, что надо использовать строгое сравнение. Его вообще надо использовать везде, где приведение типов явно не требуется и не является частью логики.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв