0

私はインターンのコードを見直していて、次のようなものに出くわしました:

//k* are defined constants
if ($a == 0 & $b >= k0) $a = 1;
if ($a == 1 & $b >= k1) $a = 2;
if ($a == 2 & $b >= k2) $a = 3;

私は彼が間違いを犯したと思っ&&&.

しかし、実際には、彼のコードは期待どおりに機能し、その理由がわかりません。私の考えでは、>=が優先され、 (参照==)も優先されます。&

ということで、テスト(1 == 0 & 1 >= 0)したら出力されまし0た。私は予想1していました、私の心の原因は、次のようなものでした:

  • 1 >= 0返品true
  • 次に、1 == 0_false
  • だから式は今(false & true)、私は等しいと思った(0 & 1)
  • 等しい1...
  • だから彼&はのように行動してい||ます。

どこが間違っていますか??

4

4 に答える 4