|
0 / 0 / 0
Регистрация: 01.08.2016
Сообщений: 3
|
|||||||||||
Проверка множества условий01.08.2016, 13:18. Показов 4234. Ответов 9
Метки нет (Все метки)
Как организовать проверку множества условий с реакцией на каждую их комбинацию?
Допустим есть две переменные $a и $b, которые могут принимать значение 1 или 0. Если a=1 и b=1, $res1=1. Если a=1 и b=0, $res2=1. В остальных случаях $res1 и $res2 равны 0. Для проверки этих условий можно просто использовать if-elseif-else типа такого:
Если a=1 и b=1, $res1=1. Если a=1 и b=0 и с=1, $res2=1. Если a=1 и с=0, $res3=1. Если a=1 и b=1 и с=1, $res4=1. В остальных случаях $res1...4 равны 0. Тут elseif использовать нельзя, т.к. третье или четвертое "если" , будет пересекаться с первым и не сработает. Значит проверка разбивается на 4 if-else:
0
|
|||||||||||
| 01.08.2016, 13:18 | |
|
Ответы с готовыми решениями:
9
Проверка нескольких условий Почему не проходит проверка условий? |
|
39 / 35 / 23
Регистрация: 10.11.2013
Сообщений: 89
|
||||||
| 01.08.2016, 13:58 | ||||||
|
можно так извратиться =)
0
|
||||||
|
Диванный эксперт
|
|||||||||||
| 01.08.2016, 14:01 | |||||||||||
|
Для начала, ваш код можно упростить до
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 01.08.2016
Сообщений: 3
|
|||
| 01.08.2016, 14:07 [ТС] | |||
Добавлено через 4 минуты
0
|
|||
|
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
|
|||
| 01.08.2016, 14:10 | |||
|
Если закономерности нет, то придется все условия записывать вручную. Куча if выглядят некрасиво, я бы сгруппировал все это в массиве.
0
|
|||
|
0 / 0 / 0
Регистрация: 01.08.2016
Сообщений: 3
|
||
| 01.08.2016, 14:42 [ТС] | ||
|
Добавлено через 24 минуты Думал докумекать самостоятельно, пользуясь подсказками, но похоже знаний все-таки не хватает. Даже вопрос правильно задать не могу. Попробую тогда описать проблему целиком. Есть некая база данных. Есть набор правил по которым "если а>5 и b=0, то выполняется действие 1, если с<3 и b=32 и d=TRUE, то выполняется действие 2..." И есть периодическое поступление новых значений от сторонних скриптов. При поступлении нового значения (одного или нескольких сразу) нам надо проверить, началО ли или закончило выполняться какое-либо правило. Ну т.е. если "а" стало больше 5, то начинаем выполнять действие 1. Каким образом проводить эту проверку, я пока понять не могу. Вариантов несколько видится: 1. Скрипт, передающий новые значения, запускает проверочный скрипт, передавая ему (например через GET) новые значения. Проверяющий скрипт, вытаскивает из базы все остальные переменные, которые ему нужны для проверки условий и выносит решение о выполнении или невыполнении ответных действий. 2. Проверяющий скрипт крутится в фоне и постоянно проверяет промежуточный файл на предмет появления там новых данных, которые пишутся туда сторонними скриптами. В случае, если новые данные есть, опять происходит проверка ну и так далее. Из плюсов этого варианта вижу отсутствие необходимости при каждом новом поступлении тащить все из базы (или это не так и плохо?). 3. Может более разумный вариант предложите? Дальше. Как хранить эти правила? Жестко забить в проверяющий скрипт? А если надо добавить или удалить или изменить правило? Наверное логично список правил хранить тоже в БД. Вот так вот сумбурно всё пока...
0
|
||
|
2 / 2 / 0
Регистрация: 03.01.2019
Сообщений: 97
|
|
| 30.01.2020, 19:23 | |
|
Всем доброго здоровья!
Имею ОГРОМНОЕ условие типа: if(огромное условие){ что-то выполняется; } Возможно ли это это ОГРОМНОЕ УСЛОВИЕ поместить в отдельный file.php и каким-то образом подключать его (например, include или requier)?
0
|
|
|
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
|
||||||||||||
| 30.01.2020, 21:58 | ||||||||||||
|
создаем массив, это массив результатов проверок. допустим, надо проверять $a>5, $b<100 && $b>5, $c<=0 и так дальше. но они в результате будут давать 0 или 1 (булевы значения). создаем массив $tester = [$a>5, $b<100 && $b>5, $c<=0]; вычисляем итог проверок:
0
|
||||||||||||
|
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
|
||||||||||||
| 30.01.2020, 22:14 | ||||||||||||
1
|
||||||||||||
| 30.01.2020, 22:14 | |
|
Помогаю со студенческими работами здесь
10
Существуют ли множества, удовлетворяющие набору условий? 2
Существуют ли множества А, В, X такие, что выполняется набор условий?
Проверка условий Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|