PHP演算子===
これは私には意味がありません。私は関数でそれを試してみましたが、それはクレイジーな方法で対応しています。
この演算子の定義は何ですか? PHP演算子の宣言でも見つけることができません。
$a === $b (Identical)
[〜#〜] true [〜#〜]
$a
が$b
と等しく、それらが同じ場合タイプ。 (PHP 4)で導入
$ a == $ b等しい(True == -1)を除き、$ aが$ bと等しい場合はTRUE。
$ a === $ b同一$ aが$ bと等しく、それらが同じ型である場合はTRUE。
> "5" == 5;
True
> "5" === 5;
False
here 、短い要約を読むことができます:
$ a == $ b Equal型ジャグリング後、$ aが$ bと等しい場合はTRUE。
$ a === $ b同一$ aが$ bと等しく、それらが同じ型である場合はTRUE。
PHPでは、==演算子または===演算子を使用して2つの値を比較できます。違いは次のとおりです。
PHPは、データ型に厳密ではない動的なインタープリター言語です。これは、言語自体が必要に応じてデータ型を変換しようとすることを意味します。
echo 4 + "2"; // output is 6
+
はPHPの数値加算演算子であるため、出力は整数値6です。したがって、オペランドに他のデータ型を指定すると、PHPは最初に適切な値に変換しますタイプ(「2」は2に変換されます)してから、操作を実行します。
異なるデータ型の可能性がある2つのオペランドで比較演算子として==を使用する場合、PHPは2番目のオペランドを最初のオペランドに変換します。
4 == "4" // true
PHPは「4」を4に変換し、値を比較します。この場合、結果は真になります。
比較演算子として===を使用する場合、PHPはデータ型を変換しようとしません。したがって、オペランドの型が異なる場合、それらは同一ではありません。
4 === "4" // false
$x == $y
は、$ xと$ yの値が同じ場合にTRUEです。
$x = 1; //int type
$y = "1"; //string type
if ($x == $y) {
// This will execute
}
$x === $y
$ xと$ yの値が同じで、$ xと$ yのタイプが同じ場合はTRUE:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}
この演算子は、PHPだけでなく、多くの動的に型付けされた言語で表示されます。
==
は、扱っているものを比較可能な型に変換しようとします。
===
は、型と値を厳密に比較します。
動的に型付けされた言語では、==に注意する必要があり、興味深いバグが発生する可能性があります。
三元===
はあまり便利ではありませんが、より安全です。比較のために、_===
または==
トリプル等号===は、2つの変数が等しく、同じタイプであるかどうかを確認します。
「PHPの3つの等号演算子」でグーグルで取得したPHPのDoubleおよびTripleの等号演算子を参照してください。
ある時点で、それはそれを言います:
二重=記号は比較であり、左側の変数/式/定数が右側の変数/式/定数と同じ値を持つかどうかをテストします。
トリプル=記号は、2つの変数/式/定数が等しいか、同じタイプかどうかを確認するための比較です。つまり、両方ともストリングであるか、両方とも整数です。
また、それを説明するための例を示します。
PHPの場合、ゼロにはさまざまな意味があります
したがって、タイプと値が同じになるように===が追加されます。
"==="変数の値と変数のデータ型を一致させます。