web-dev-qa-db-ja.com

「===」とはどういう意味ですか?

PHP演算子===これは私には意味がありません。私は関数でそれを試してみましたが、それはクレイジーな方法で対応しています。

この演算子の定義は何ですか? PHP演算子の宣言でも見つけることができません。

55
Stefan Konno
$a === $b     (Identical)      

[〜#〜] true [〜#〜]$a$bと等しく、それらが同じ場合タイプ。 (PHP 4)で導入

PHPドキュメント

68
Tim Sylvester

http://www.php.net/ternary

$ a == $ b等しい(True == -1)を除き、$ aが$ bと等しい場合はTRUE。

$ a === $ b同一$ aが$ bと等しく、それらが同じ型である場合はTRUE。

> "5" == 5;
True
> "5" === 5;
False
58
Dykam

here 、短い要約を読むことができます:

$ a == $ b Equal型ジャグリング後、$ aが$ bと等しい場合はTRUE。

$ a === $ b同一$ aが$ bと等しく、それらが同じ型である場合はTRUE。

12
Artem Barger

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

9
farzad

$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
}
6
anik4e

この演算子は、PHPだけでなく、多くの動的に型付けされた言語で表示されます。

==は、扱っているものを比較可能な型に変換しようとします。

===は、型と値を厳密に比較します。

動的に型付けされた言語では、==に注意する必要があり、興味深いバグが発生する可能性があります。

三元===はあまり便利ではありませんが、より安全です。比較のために、_===または==

4
Keith

トリプル等号===は、2つの変数が等しく、同じタイプであるかどうかを確認します。

3
Jon

「PHPの3つの等号演算子」でグーグルで取得したPHPのDoubleおよびTripleの等号演算子を参照してください。

ある時点で、それはそれを言います:

二重=記号は比較であり、左側の変数/式/定数が右側の変数/式/定数と同じ値を持つかどうかをテストします。

トリプル=記号は、2つの変数/式/定数が等しいか、同じタイプかどうかを確認するための比較です。つまり、両方ともストリングであるか、両方とも整数です。

また、それを説明するための例を示します。

1
umar

PHPの場合、ゼロにはさまざまな意味があります

  1. ブール値false
  2. null値の可能性があります
  3. それは本当にゼロになる可能性があります

したがって、タイプと値が同じになるように===が追加されます。

1
Extrakun

"==="変数の値と変数のデータ型を一致させます。

0
manoj kumar