За последние 24 часа нас посетили 15657 программистов и 1563 робота. Сейчас ищут 945 программистов ...

Перебор переменных

Тема в разделе "Прочие вопросы по PHP", создана пользователем rukisalat, 6 июл 2014.

  1. rukisalat

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

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    И снова здрасьте :)
    Каким образом можно перебрать переменные с функциями и вывести общее значение?
    Что то типа этого, только дейстующее:
    Код (Text):
    1. if ((empty($error_1)) {echo error.= "поле №1 не заполенено"}
    2. || (empty($error_2)) {echo error.= "поле №2 не заполенено"}
    3. || (empty($error_3)) {echo error.= "поле №3 не заполенено"})
    4. return $error as $result;
    5. echo $result;
    И должен вывестись список из тех ошибок, которые не прошли по условию.

    Заранее спасибо.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Код (PHP):
    1. if ((empty($error_1)) {echo error.= "поле №1 не заполенено"}
    2. || (empty($error_2)) {echo error.= "поле №2 не заполенено"}
    3. || (empty($error_3)) {echo error.= "поле №3 не заполенено"})
    4. return $error as $result;
    5. echo $result; 
    О,О
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    кроме неправильного синтаксиса, у тебя логическая ошибка. судя по всему, тебе НЕ надо условие "или". надо проверять КАЖДЫЙ из вариантов. и следи чтобы скобки были парными!

    if () { }
    if () { }
    if () { }

    return $error as $result; — у меня нет идей что это за хрень ))) просто удали as $result

    тут одно из двух: либо return, либо echo. т.к. после возврата уже никакие операторы не выполняются. решай сам что ты хочешь.
     
  4. rukisalat

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

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    ЛОООЛ.
    Я написал это чисто как логический пример. И хотел увидеть ответ, как добиться правильной конструкции для перебора функций.

    Если $error_1 пуст, то $error = поле №1 не заполенено
    или если $error_2 пуст, то $error = поле №2 не заполенено
    или если $error_3 пуст, то $error = поле №3 не заполенено
    Вывести $error со всеми совпадениями
     
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Что бы писать "логические примеры" нужно обладать логикой и не путаться в терминах.
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    rukisalat, тут не на что обижаться. ты получил то, что просил.

    подумай хорошенько и пойми почему конкретно здесь "ИЛИ" не подходит. это порвет твои шаблоны ))) опыт сын ошибок трудных.
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Каждый пишет свои велосипеды. Хочешь красоты бери фреимворк и пишп на нем.
     
  8. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    deja vu! фреймворк не решает проблем, если программист не знает как складывать числа.
     
  9. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Код (PHP):
    1.   $fields = array('name'=>'Имя', 'age'=>'Возраст', 'phone'=>'Телефон');
    2.   foreach ($fields as $field=>$descr)  {
    3.      if (empty($$field))  $error.="Поле $descr не заполнено\n";
    4.   }
    5.   return $error;
    6.  
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Как раз это упрощает разработку. Он пока не знает как складывать числа а уже хочет продумать архитектуру.
    А так уже все готово надо взять и использовать.
     
  11. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Числа и логика уже несколько тысяч лет как готовы к использованию. Но что-то пока не получается.

    Автор, ты же в курсе, что II это не просто человеческое "ну или", а оператор из дискретной математики? И что все операнды при нем формируют конечное выражение? И что если надо проверить каждый параметр, то || не подходит ввиду некоторых особенностей этой самой дискретной математики? 1+0+0 = 1. А тебе нужно, чтобы было 0. Думай дальше.
     
  12. rukisalat

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

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    В итоге так никто и не понял что я имел ввиду. Ну и ладно.
    Решил костылем через множественное if в конце либо die, либо отправка.
     
  13. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Значит, вы настолько понятно объяснили. Народ тут, вроде бы, не отстающая группа школы для недоразвитых.