演算子は、コンパイラーに特定の算術演算または論理演算を実行するように指示する記号であり、通常、数学演算または論理演算に関与する式を形成します。 PHP には多くの演算子も含まれており、この記事では非常に重要な比較演算子について詳しく説明します。
その名前が示すように、2 つの値の比較を可能にします。比較演算子は次のとおりです:
1) $a > $b より大きい: $a が厳密に $b より大きい場合、TRUE が返されます
2) $a 3)
$a >= $b 以上: $a が $b 以上である場合、TRUE を返します4)
$a 以下: $a が $b 以下の場合、TRUE を返します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 すべてが等しいわけではない : $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 での異なる型の結果の比較
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 の場合、値は expr2、式 expr1 の値FALSE の場合は expr3 です。
以上がPHP の比較演算子と論理演算子の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。