2015-07-19 4 views
2

У меня проблема с моим кодом. Я пытаюсь сделать заявление if. Пример:несколько выводов из оператора if

// 1st statement 
if($day1 && $day2 && day3 == null){ 
    echo " A" 
} 

// 2nd statement 
elseif ($day4 && $day5 == null) { 
    echo "B" 
} 

// 3rd statement 
elseif($day6 && day7 == null) { 
    echo "C" 
} 
else { 
    echo "E" 
} 

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

, что я хотел бы достичь в том, что если 1-й 2-й и третий истинны результат будет:

A B C

для других условий, если первое и третье истинны результат будет: A C

и так далее.

ответ

2

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

Например

$arr = array("A" =>$test1, "B" =>$test2, "C" => $test3); 

$mystring = ""; 

foreach ($arr as $key=>$value) { 
    if($value) { 
     if ($mystring != "") 
      $mystring += " "; // add spacer 

     $mystring + = $key; 
    } 
} 

echo $mystring; 
+0

Я пытался использовать массив в моем случае, но мне кажется слишком трудным понять. Спасибо за вашу помощь. :) –

+0

Я думаю, что единственный способ - это то, что сделал маленький ребенок. Мне просто нравится гибкость массива, чтобы добавить больше элементов. –

0

Сделайте то же самое, но без if..elseif. Используйте только условия if. Вам понадобится переменная, чтобы проверить, должно ли последнее выполняться или нет. Для этого вы можете сохранить результат в переменной и проверить, если он пуст:

$msg = ''; 
//1st statement 
if ($day1 && $day2 && day3 == null) { 
    $msg .= " A"; 
} 

//2nd statement 
if ($day4 && $day5 == null) { 
    $msg .= "B"; 
} 

//3rd statement 
if ($day6 && day7 == null) { 
    $msg .= "C"; 
} 

if (!$msg) { 
    echo "E"; 
} else { 
    echo $msg; 
} 
+0

это работает. Спасибо. но у меня возникают проблемы при выполнении инструкции else. пока я использую только «if» без «else». и я планирую сделать больше «если» для результата «else» null = false –

0

вы не должны использовать еще для вашей цели. попробовать это:

//1st statement 
    if($day1&&$day2&&day3==null) 
    {echo " A"} 

    //2nd statement 
    if ($day4&&$day5==null) 
    {echo "B"} 

    //3rd statement 
    if($day6&&day7==null){echo "C"} 
else {echo "E"} 

в противном случае каждое следующее условие будет работать, только если предыдущее был ЛОЖЬ

читать об этом: http://php.net/manual/en/control-structures.elseif.php

Смежные вопросы