2015-10-23 5 views
-1

У меня вопрос о isset() с несколькими условными выражениями и проверка того, что они возвращают ненулевые или правильные результаты.Как проверить множественное условное выражение isset для истинных значений?

Я пытаюсь устранить выражение Исети, которая выглядит как:

if(isset($content['field_1']) && $content['field_2'] && $content['field_3']=="top"){ 
    do a thing 
} 

Я понимаю, что если field_1 верно, то другие условные рассматриваются как истинная.

Оператор «if» зацикливается несколько раз, когда создается слайд-шоу. Большая часть созданного слайда имеет все реальные результаты и в порядке, но есть несколько слайдов, где это значение существует, но не так точно, как требуется. Код работает, но журнал ошибок drupal заполняет предупреждения «undefined index».

Вопрос у меня есть: Каков наилучший способ иметь несколько условных isset при проверке каждого раздела? простой «else» после «if» не решает этого, так как это несколько условностей (я думаю). и я не знаю, есть ли более простой способ справиться с этим, чем разбить несколько условных выражений на отдельные, прежде чем продолжить.

Если у кого-то достаточно, чтобы прочитать это, у вас есть вопросы, или если мой вопрос не ясен, сообщите мне. Я рад прояснить. Спасибо!

+0

Можете ли вы, возможно, опубликовать пример нескольких условий? – Akshay

+2

* «Я понимаю, что если field_1 истинно, то другие условные выражения считаются истинными». * - не совсем: если '$ content ['field_1']' не установлен, то condtion является ложным, и нет необходимо оценить два других. – Kenney

ответ

0

Я понимаю, что если field_1 истинно, то другие условные выражения считаются истинными.

Ваше предположение неверно. Вы не проверяете значение $content, на которое ссылается ключ field_1, вы проверяете, существует ли такой ключ - это две разные вещи. Также вы используете оператор && (AND), и в таком случае, если одно условие возвращает false, тогда оценка остатка бессмысленна, так как логическая логика все выражение будет false.

+0

Спасибо за это, это отличная помощь! Теперь я лучше понимаю, где я ошибаюсь. – StephanieF

0

попробовать это:

if ((!empty($content['field_1']) || !empty($content['field_2'])) && !empty($content['field_3']) && $content['field_3'] == 'top') { 
    // Do Something 
}