2016-10-31 2 views
2

Итак, у меня есть блок кода в WordPress, который имеет «ИЛИ» условия внутри оператора «elseif». вот код:Есть ли ограничение на количество условий «ИЛИ», которые я могу ввести в PHP?

<?php } elseif($index == 1 || $index == 8 || $index == 9 || $index == 16 || $index == 17 || $index == 20 || $index == 21) { ?> 

Так код большой вверх работает до $index == 20 || $index == 21

Есть ли предел, сколько раз я могу использовать || в ELSEIF заявлении?

+1

Нет предела, кроме практичности. –

+5

Без ограничений, но более простые способы сделать это, например if (in_array ($ index, [1,8,9, ...])) –

+0

Спасибо @MarkBaker, я собираюсь попробовать таким образом – MikeL5799

ответ

3

Нет нет предела ИЛИ заявления внутри если оговорки. Имейте в виду, что чем больше ORs вы получите, читаемость уменьшится. Существует ВСЕГДА лучшее решение, а затем просто добавляет все больше и больше OR.

Для примера выше, лучшим решением было бы проверить, если $ индекс внутри массива возможных значений, как так:

Вместо

if ($index == 1 || $index == 2 || $index == 3) { /* ... */ } 

вы можете сделать

if (in_array($index, [1, 2, 3])) { /* ... */ } 
+0

Спасибо, что я сделал это, но странная причуда любого индекса после 16 не работает еще – MikeL5799

+1

Что вы подразумеваете под этим? Он должен работать на всевозможные ценности. –

+0

индексы выбираются до '' 'elseif (in_array ($ index, [17,21,25]))' '' – MikeL5799

3

Нет предела. Просто убедитесь, что он доступен для чтения.

2

Посмотрите на функцию in_array(). Таким образом, код не является часто более компактным и легким для чтения и понимания в то же время:

if (in_array($id, [1, 8, 9, 16, 17])) 

http://php.net/manual/en/function.in-array.php

+0

Большое спасибо Я сделал это, но странная причуда любого индекса после 16 не работает еще – MikeL5799

+1

@ MikeL5799 Это должна быть какая-то другая проблема. Там определенно нет такого предела. Пожалуйста, загляните в файл журнала ошибок http-серверов. Вот где вы можете прочитать, какова фактическая проблема, если вы получаете ошибку php. Если ваш код просто не выполняет то, что вы ожидаете от него, то, скорее всего, у вас есть логическая ошибка. – arkascha