Несколько условий

299
10 декабря 2016, 10:06

Привет! Ситуация в следующем, хочу сделать красиво условие а получается какой то говнокод)

if(условие1){
    $xml= simplexml_load_file('link');
  if($xml){
     действие1
  }else{
     действие2
  }
}else{
   действие2
}

Возможно есть способ не прописывать два одинаковых действия в ветке else?

P.S. Вторым условием в моем случае является загрузка некоторых данных со стороннего сервиса, это условие должно проверяться только когда выполнено первое условие, для того что бы не нагружать сторонние сервисы постоянными запросами

Answer 1

Можно сразу положить значение в переменную $xml и проверить ее значение:

if(условие1 && ($xml= simplexml_load_file('link'))){
   действие1
}else{
   действие2
}

Еще можно посмотреть на, многими не любимый, оператор goto

Answer 2

Конечно, самый простой вариант -

if (условие1 && условие2)
      действие1
else действие2
Answer 3

Пропробуйте вот так вот...

if (!условие1) {
  действие2
}
$xml= simplexml_load_file('link');
if (!$xml) {
     действие2
}
действие1
Answer 4

Изначально:

if (условие1 && условие2) {
  действие1
} else {
  действие2
}

С уточнением вопроса:

if (условие1 && simplexml_load_file('link')) {
  действие1
} else {
  действие2
}
READ ALSO
Обработка нескольких checkbox с одним и тем же name

Обработка нескольких checkbox с одним и тем же name

Доброго времени! У меня такая задача - на странице циклом php выводится в форме разное количество чекбоксов например так

351
DateTime: Баг или фича?

DateTime: Баг или фича?

функция должна выводить количество дней между $d1 и unixtimestamp (1475107200)

216
Большой POST запрос

Большой POST запрос

Бьюсь второй день над следующей задачей: есть база данных адресов типа "область", "город", "улица", "дом" и тд

327
implode и многомерные массивы

implode и многомерные массивы

Мне нужно в логах красиво, С ОТСТУПАМИ выводить многомерные массивыПока у меня есть функция для вывода без отступов:

412