2011-11-09 6 views
-1

ifの条件が正常に入力された後にelse if本文に行く方法はありますか? ifの条件が正常に入力された後、else ifに行く方法はありますか?'if'条件が成功裏に入力された後に 'else if'ループに移動する方法

if ($axisX == $axisXOne) { /* Main IF Statement */ 
      if($axisY =='0' && $axisYOne == '1') { $second = '2';} 
     else if($axisY =='0' && $axisYOne == '2') { $second = '1';} 
     else if($axisY =='1' && $axisYOne == '0') { $second = '2';} 
     else if($axisY =='1' && $axisYOne == '2') { $second = '0';} 
     else if($axisY =='2' && $axisYOne == '0') { $second = '1';} 
     else if($axisY =='2' && $axisYOne == '1') { $second = '0';} 

      if (($_POST['button'.$axisX.$second] == null) && ($curVal != $axisX.$second)){ /* Inner IF Statement */ 
      echo $axisX.$second; 
      } 
    } 
    else if ($axisY == $axisYOne) { /* Main ELSE IF statement */ 
     if($axisX =='0' && $axisXOne == '1') { $second = '2';} 
     else if($axisX =='0' && $axisXOne == '2') { $second = '1';} 
     else if($axisX =='1' && $axisXOne == '0') { $second = '2';} 
     else if($axisX =='1' && $axisXOne == '2') { $second = '0';} 
     else if($axisX =='2' && $axisXOne == '0') { $second = '1';} 
     else if($axisX =='2' && $axisXOne == '1') { $second = '0';} 
      if($_POST['button'.$second.$axisY] == null) {/* Inner IF Statement */ 
       echo $second.$axisY; 
      } 
    } 
    else if ($xAxis == $yAxis && $xAxisOne == $yAxisOne) { /* other Main ELSE IF Statement*/ 
      if($comVal[0] == '00' && $comVal[1] == '11') { $diagon = '22';} 
     else if($comVal[0] == '00' && $comVal[1] == '22') { $diagon = '11';} 
     else if($comVal[0] == '11' && $comVal[1] == '00') { $diagon = '22';} 
     else if($comVal[0] == '11' && $comVal[1] == '22') { $diagon = '00';} 
     else if($comVal[0] == '22' && $comVal[1] == '00') { $diagon = '11';} 
     else if($comVal[0] == '22' && $comVal[1] == '11') { $diagon = '00';} 
      if($_POST['button'.$diagon] == null) { 
      echo $diagon; 
      } 
    } 

メインIFステートメントがtrue、内部IFステートメントevalautesがfalseの場合は、メインELSE IFラダーに移動します。 Main IF Statementがtrueを評価し、Inner IF Statementがtrueならばループを停止します。 Main IF Statementがfalseを評価した場合は、そのままMain ELSE IF文に直接移動します。

Main ELSE IF Statementがtrue、Inner IF Statement evalautesがfalseの場合、Main ELSE IF ladderに進みます。それ以外の主なif文が真と評価してインナーIF文が真のevalautesステートメントがfalseと評価if文

+2

それ以外の場合はサブルーチンに繰り返して、両方の場所から呼び出すコードを入力します。それに良い名前をつけてください。 – Thilo

+0

私はThiloの推薦で2番目のサブルーチンが必要です。 – paulsm4

+1

あなたの変数名はひどいです。 – xdazz

答えて

1

このしようとすると、ELSEメイン.IFループを停止すると、直接ELSE他の主に行けば:

$success = true; 

if($a == $Xaxis && $b == $yaxis) { 
    $zAxis = $Xaxis + $yaxis; 
    $success = $Xaxis != $zAxis; 
} 
if(($b == $Xaxis && $a == $yaxis) || !$success) { 
    // do stuff here 
} 

か何かをそれらの行に沿って。

+2

スパゲッティコードです。それ以外の場合はサブルーチンに繰り返すコードを置き、両方の場所から呼び出してください。 – Thilo

+0

私はそれをしますが、質問者がPHP> = 5.3を持っているかどうかわかりません。彼らはPHP 5のみを指定します。 –

+0

また、(スパゲッティの結果として)正しく動作しないようです。 $ successが最初はfalseなので、条件が一切無ければ 'stuff stuff'ブロックに入ります。 – Thilo

関連する問題