2017-12-29 6 views
0

これは私をナットにしています。私はこれをデバッグしようと数時間を費やしましたが、私はどこにも行きません。 $totalは、($result == 0でない場合)の場合にのみ、毎回$result != 'REMAKE'1だけ増加します。なぜ私は理解できません。私は$total += 1を試しましたが、違いはありません。なぜ私の2つの可変インクリメントステートメントは機能していますか?

didAccountWinMatch()01、または'REMAKE'のいずれかを返します。

$total = 0; 
$wins = 0; 
if (isset($match)) { 
    foreach ($match as $key => $value) { 
     $result = didAccountWinMatch($accountId, $match[$key]);  
     if ($result != "REMAKE") { 
      $total ++; 
      $wins += $result; 
     }   
    } 
} else { 
    $total = 0; 
    $wins = 0; 
} 
+0

'$ wins'が増えていますか? – Carcigenicate

+0

はい。具体的に言うと、その値は '$ result'の値だけ増加します。したがって、 '$ result == 1'のときは' 1 'だけインクリメントされます。 –

答えて

2

利用!==の代わり!=。整数と文字列の間に緩やかな比較演算子を使用すると、文字列は最初に整数に変換されます。 0の整数結果を文字列REMAKE変換ので$resultが整数である場合、コードは

if ($result != 0) 

と等価です。

厳密な比較演算子!==は型変換を実行しません。オペランドが異なる型の場合は、falseを返します。

+0

これを試みると、報告が返ってきます。更新:これは動作します!どうもありがとうございます!説明も。 –

関連する問題