3

重複の可能性:
参照-この記号はPHPで何を意味しますか?

PHPのこれら2つの違いは何ですか?

 if( $x==1 || $y==1)   if( $x==1 && $y==1)

対(それぞれ)

 if( $x==1 | $y==1)    if( $x==1 & $y==1)

私の知る限り、どちらも同じように機能します| 対|| phpで。しかし、違いがなければなりません!!!

4

5 に答える 5

6

||&&はブール演算子です。2つの引数を取り、それぞれをブールに変換してから、trueまたはを返しfalseます。

|および&ビット演算子です。引数をバイナリに変換し、各ビットを比較します。2進数を返します。

于 2012-11-20T03:51:25.317 に答える
2

1つは条件付きorandandを使用し、もう1はビット単位のorandandを使用してます。

于 2012-11-20T03:45:25.227 に答える
1

||これは条件ですOR
|これは少し賢明ですor

  1. $a | $b Or$a(包括的または)いずれか$bに設定されている、または設定されているビット
  2. $a & $b And$a両方に 設定され、設定されているビット$b

              if( $x==1 || $y=1)             if( $x==1 && $y==1)

  if body --> if one of them is true            both is true
于 2012-11-20T03:46:26.337 に答える
0

最初に:if( $x=1 || $y=1)$ xを値1に設定し、$yを値1に設定します。

正しい構文は次のとおりです。

if( $x==1 || $y==1)

違いは言葉でよりよく表現できます:

if( $x==1 OR $y==1) `if( $x==1 AND $y==1)

ダブルアンパサンドとダブルパイプは論理演算子として知られています。ここでもっと見る

単一のアンパサンドと単一のパイプはビット単位のステートメントです。ここでもっと見る

于 2012-11-20T03:46:24.493 に答える
0

ドキュメントはあなたの友達です。&&および||は論理演算子です。あなたはここでそれらについてもっと読むことができます。

演算子の優先順位&&について読み、 vsand||vsorが異なる理由を学ぶことを強くお勧めします。一方が他方より適切である場合を学びます。基本的に、および=よりも優先順位が高くなりますが、およびよりも優先順位は低くなります。論理演算子セクションの例1は、これをうまく説明しています。andor&&||

他の言語では、とではなく、とだけが&&あります。||andor

&および|はビット演算子です。あなたはここでそれらについて読むことができます。

ビット演算子の一般的な使用法はフラグです。一般的な使用法の1つは、PHPのerror_reporting設定です。

于 2012-11-20T04:17:11.570 に答える