演算子は、コンパイラーに特定の算術演算または論理演算を実行するように指示する記号であり、通常、数学演算または論理演算に関与する式を形成します。 PHP には多くの演算子も含まれており、この記事では非常に重要な比較演算子について詳しく説明します。
比較演算子の種類
その名前が示すように、2 つの値の比較を可能にします。比較演算子は次のとおりです。
1) $a > $b が大きい場合: $a が $b より大きい場合、TRUE が返されます
2) $a 3) $a >= $b 以上: $a が $b 以上の場合、TRUE を返します
4) $a 5) $a $b が等しくない: $a が $b に等しくない場合、TRUE を返します
6 ) $a != $b は次と等しくない: $a が $b と等しくない場合、TRUE を返す (上記と同じ)
7) $a == $b は次と等しい: $a が $b と等しい場合、TRUEを返します
8) $a === $bは次と等しい: $aが$bに等しく、型も同じ場合、TRUEを返します
9) $a !== $bは等しくないto: $a が $b と等しくない場合、または型が異なる場合は TRUE が返されます
その中で、「等しい」と「すべて等しい」の区別に焦点を当てる必要があります、$a == $ b は 2 つの変数の値に対してのみ比較演算を実行しますが、等価性では、値が一致する場合にのみ、演算子の両側の式の値とデータ型を同時に比較する必要があります。両辺が等しい場合、演算結果は true になります。」たとえば、$a = 2; var_dump($a!==2); と「不等式」演算子を組み合わせると、2 は 2 に等しいため、この式は「false」を返します。さらに、$a = 2; は整数型であり、var_dump($a!==2); の 2 も整数型ですが、演算子は "!==" と完全に等しくないため、結果は false になります。 、 2 は 2 に等しいためです。一方、この場合 $a = 2; var_dump($a!=='2'); 2 は '2' に等しくないため、演算の結果は "true" になります。 '2' は '2' ' の文字列です。つまり、すべてが等しいわけではなく、変数値を比較するだけでなく、変数のデータ型も比較します。
PHP での異なる型の結果の比較
PHP 比較演算子が整数と文字列を比較する場合、文字列は比較前に整数に変換されます。 2 つの数値文字列を比較する場合、それらは整数として比較され、この規則は switch ステートメントにも適用されます。
例:
var_dump(0 == "a"); // TRUE を返し、「a」は 0 に変換されます
var_dump("1" == "01"); // TRUE を返し、整数として扱われます
string null と string の比較: NULL を "" に変換して数値または文字列を比較します
bool または null の比較: bool、FALSE オブジェクトの組み込みクラスは独自の比較を定義できますが、異なるクラスは比較できません、同じクラスが属性を比較する場合
文字列、リソース、または数値間の比較: 文字列とリソースを数値に変換し、通常の数学に従って比較します
配列間の比較: オペランド 1 が含まれる場合、メンバーの少ない配列の方が小さくなります。オペランド 2 に存在するため、配列は比較できず、値ごとに比較する必要があります (次のコードを参照)
配列と他の型の比較: 配列の方が常に大きい
オブジェクトと他の型の比較: オブジェクトの方が常に大きい
配列比較コード:
function standard_array_compare($op1, $op2) { if (count($op1) < count($op2)) { //具有较少成员的数组较小 return -1; // $op1 < $op2 } elseif (count($op1) > count($op2)) { return 1; // $op1 > $op2 } foreach ($op1 as $key => $val) { if (!array_key_exists($key, $op2)) { return null; } else if ($val < $op2[$key]) { return -1; } elseif ($val > $op2[$key]) { return 1; } } return 0; // $op1 == $op2 }
比較演算子の三項演算子:
Expression (expr1) ? (expr2) : (expr3) 式 expr1 の値が TRUE の場合、式 expr1 が FALSE と評価される場合、値は expr2 になります。 expr3 と評価されるとき。