2009-07-20 10 views
0

場合、私はこのコードを持っている:PHPロジックたstatments

$distance= -1 ;//default 
//distance calc 
if($dgalaxy = $galaxy){ 
    if(($dx = $x) && ($dy = $y)) 
    { 
      //inter planitary currently unknown formula 
    }else{ 
      $distance = round(Sqrt(pow(($dx-$x),2)+pow(($dy-$y),2)));//interstllar 
    } 
}else{//intergalatic 
    if ($galaxy < $dgalaxy){ 
      $distance = (((9-fmod($galaxy,10))*200)+2000+(fmod($dgalaxy,10)*200));//anti clockwise galactic 
    }else{ 
      $distance = (((fmod($galaxy,10))*200)+2000+(fmod(9-$dgalaxy,10)*200));//clockwise galactic 
    } 
} 

それは、インター惑星句を除く各計算の値を返す必要があります。 ($ dgalaxy = $ galaxy)とx、y座標が異なる場合には、これは星間の公式を実行し、これはうまくいきます。

しかし、$ dgalaxy!= $ galaxyの場合、-1で銀河距離計算を実行していないことを意味します。

何が間違っていますか?どのように修正できますか?

答えて

14

$dgalaxy = $galaxy割り当てない比較あります。 ==を使用してください。

他所です。あなたは=ではなく==もしくは===の使用

4

は:

$distance= -1 ;//default 
       //distance calc 
       // MISTAKE HERE. USE == INSTEAD of = 
       if($dgalaxy == $galaxy){ 
         if(($dx == $x) && ($dy == $y)) 
         { 
           //inter planitary currently unknown formula 
         }else{ 
           $distance = round(Sqrt(pow(($dx-$x),2)+pow(($dy-$y),2)));//interstllar 
         } 
       }else{//intergalatic 
         if ($galaxy < $dgalaxy){ 
           $distance = (((9-fmod($galaxy,10))*200)+2000+(fmod($dgalaxy,10)*200));//anti clockwise galactic 
         }else{ 
           $distance = (((fmod($galaxy,10))*200)+2000+(fmod(9-$dgalaxy,10)*200));//clockwise galactic 
         } 
       } 
3

はそれが$ dgalaxy == $銀河をすべきではありませんか?私。割り当てよりむしろ平等チェック?

関連する問題