За последние 24 часа нас посетили 17392 программиста и 1627 роботов. Сейчас ищут 1106 программистов ...

проверка соответствия нескольким значениям

Тема в разделе "PHP для новичков", создана пользователем antonn, 8 ноя 2007.

  1. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    сабж написан глупо, знаю :)
    в общем есть переменная, нужно сделать обычное условие if() на несколько значений, есть ли конструкция типа if($per in [1,2,3,4,5,'text']){} ? а то значений для проверки может быть немало, очень не хочется загонять их в массивы и тем более каждую проверять if($per==1)
     
  2. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    if(in_array($per,array(1,2,3,4,5,'text'))) ...
     
  3. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    ну вот.. а без массивов есть? :)
    просто интересно, должно же быть по идее :)
     
  4. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    Нет, вроде другого способа нет.
     
  5. sw04

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

    С нами с:
    30 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    если только при одном условии совершается действие1, то можно только в массиве, если же от значения(ий) зависит действие1/действие2/действиеN , то использовать switch
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    и
    Код (Text):
    1. in_array($per, array(1,2,3,4,5,'text'))
    различны только синтаксисом. В php нету оператора in, а массивы не делает различий между ассоциативным ({}) и списком ([]).

    Так что это одно и то же. И значит твоя идея верна - такое есть. Просто через что сделано (тут ближе к попе, да) это совсем другой вопрос. :)
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Напиши свою функцию
    PHP:
    1. <?php
    2. if (in($value, 1, 2, 3, 'text')) {
    3.  
     
  8. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    lexa
    ну чтож, тогда будем массивы юзать в том виде, как они нарисованы :)
     
  9. Anonymous

    Anonymous Guest

    А мне в Питоне списки нравятся, да... к ним можно in применять в if, и работают быстрее массивов... )
     
  10. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    давно и с удобством использую.

    PHP:
    1. function in($h,$str) {
    2. if (is_array($str)) {
    3.     return in_array($h,$str);
    4. } else {
    5.     return in_array($h,explode(',',$str));
    6. }
    7. }