|
0 / 0 / 0
Регистрация: 01.08.2016
Сообщений: 3
|
|||||||||||
Проверка множества условий01.08.2016, 13:18. Показов 4168. Ответов 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 такие, что выполняется набор условий?
Проверка условий Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|