0
<?php 
$key='APS'; 
$value='A|B|'; 
if ($key == 'APS'){ 
    $aps = $key; 
    if (!empty($value)){ 
     if(preg_match("/\|/",$value)){ 

      $elephant = explode('|',$value); 

      foreach ($elephant as $elekey=>$elevalue){ 
       if($elevalue = 'A'){ 
        $elevalue_a=$elevalue; 
        if(isset($aps) && ($aps != '')){ 
         if(isset($elevalue_a) && ($elevalue_a != '')){ 
          echo $elevalue; 
          echo '<br>'; 
         } 
        } 
       } 
       if($elevalue = 'B'){ 
        $elevalue_a=$elevalue; 
        if(isset($aps) && ($aps != '')){ 
         if(isset($elevalue_a) && ($elevalue_a != '')){ 
          echo $elevalue; 
          echo '<br>'; 
         } 
        } 
       } 
       if($elevalue = 'C'){ 
        $elevalue_a=$elevalue; 
        if(isset($aps) && ($aps != '')){ 
         if(isset($elevalue_a) && ($elevalue_a != '')){ 
          echo $elevalue; 
          echo '<br>'; 
         } 
        } 
       } 
       if($elevalue = 'D'){ 
        $elevalue_a=$elevalue; 
        if(isset($aps) && ($aps != '')){ 
         if(isset($elevalue_a) && ($elevalue_a != '')){ 
          echo $elevalue; 
          echo '<br>'; 
         } 
        } 
       } 
       if($elevalue = 'E'){ 
        $elevalue_a=$elevalue; 
        if(isset($aps) && ($aps != '')){ 
         if(isset($elevalue_a) && ($elevalue_a != '')){ 
          echo $elevalue; 
          echo '<br>'; 
         } 
        } 
       } 
      } 
     } 
     else{ 
      echo $singlevalue = $value; 
     } 
    } 
    else { 
     echo $value='NIL'; 
    } 
} 
?> 

Приведенный выше код может быть длительным, но это очень простой пример, в котором, если вы исполняете вы можете увидеть if условия будут не в состоянии избежать петли.PHP, если условие не выполняется внутри цикла Еогеасп

Почему в PHP, если условие выходит из строя внутри цикла foreach?

+1

'if ($ elevalue = 'A')' <- ваша проблема прямо там ... – Peon

+1

Совет здесь: вложения 'if' утверждений в этом случае беспорядочны. Вы всегда можете заменить 'if ($ a) {if ($ b) {...}}' by 'if ($ a && $ b) {...}' – Carlos

+0

jackflash - Спасибо за предложение. Да, я знаю ... также по той же логике я должен изменить поток управления, чтобы избежать вложенных циклов. Мышление для умного способа сделать это ... где часть кода размещена только здесь. Спасибо за запоминание! – Neocortex

ответ

2

Проблема: Вы используете оператор присваивания внутри if отчетность

Заменить = с == или === (строгой проверки)

if($elevalue = 'B'){ 

в

if($elevalue == 'B'){ [or] if($elevalue === 'B'){ 
+1

ой! дерьмо! кровоточил мозг! благодаря! Извините переполнение стека! Мне очень жаль! – Neocortex

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