2016-09-13 4 views
-2

조건 A가 True 일 경우 루프이고, 거짓이면 집합 B가 이고 조건은 루프입니다.조건부 루프 PHP

if ($_POST['Latest'] == 1): 
    for ($i=$date_to; $i>=$date_from; $i-=86400) 
else: 
    for ($i=$date_from; $i<=$date_to; $i+=86400) 
endif; 

이 코드는 구문 분석 오류 : 예기치 않은 T_ELSE 구문 오류를 제공합니다.

+4

음, 분명히 당신은 –

+0

은 당신이 당신의 루프를 무엇을 기대할 않도록 할 수 없다 ? – dckuehn

답변

2
if ($_POST['Latest'] == 1){ 
      for ($i=$date_to; $i>=$date_from; $i-=86400){ 
      // EXECUTE SOME CODE... 
      } 
     }else{ 
      for ($i=$date_from; $i<=$date_to; $i+=86400){ 
      // EXECUTE SOME CODE... 
      } 
     } 
    } 
1

가 여기에 적절한 코드입니다 :

if ($_POST['Latest'] == 1) { 
    for ($i=$date_to; $i>=$date_from; $i-=86400) { 
     // do stuff 
    } 
} else { 
    for ($i=$date_from; $i<=$date_to; $i+=86400) { 
     // do stuff 
    } 
} 
0

당신이 필요로 하나, for 루프 후에 뭔가를 추가 이전 답변 제안으로, 더 나은 구문을 사용하여 더 나은 아직 중괄호를 추가하거나합니다.

중괄호없이 for는 다음 문장을 반복합니다. 이렇게 근본적으로 너는 "else"시도한다 $date_from 시간.

코드는이 생각처럼 작동합니다 :

if ($_POST['Latest'] == 1): 
    for ($i=$date_to; $i>=$date_from; $i-=86400) {} 
else: 
    for ($i=$date_from; $i<=$date_to; $i+=86400) {} 
endif; 
0

당신은 구문 보일 수 있습니다와 같은 :

$l = (int) filter_input(INPUT_POST, 'Latest', FILTER_SANITIZE_NUMBER_INT); 
for (
    $i = ($l ? $date_from : $date_to); 
    $l ? $i >= $date_from : $i <= $date_to; 
    $i += 86400 * ($l ? -1 : 1) 
): 
    continue; 
endfor;