5

重複の可能性:
等値 (== 二重等号) と同一性 (=== 三重等号) の比較演算子はどのように異なりますか?
参考 - この記号はPHPで何を意味しますか?
php が != および !== と等しくない

このコード スニペットの!==and演算子は何ですか?===

if ( $a !== null ) // do something
if ( $b === $a ) // do something
4

6 に答える 6

13

それらは恒等等価演算子です。

1 == 1
1 == "1"
1 === 1
1 !== "1"
true === true
true !== "true"
true == "true"

これらはすべて true に相当します。@mbeckish が提供するこのリンクも確認してください

于 2010-11-02T17:30:21.103 に答える
6

これらは厳密な型比較演算子です。値だけでなくもチェックします。

数値または文字列を比較するときの状況を考えてみましょう:

if (4 === 4) // same value and type
{
  // true
}

しかし

if (4 == "4") // same value and different type but == used
{
  // true
}

if (4 === "4") // same value but different type
{
  // false
}

これはオブジェクトだけでなく配列にも当てはまります。

したがって、上記の場合、使用するか、使用するかを賢明に選択する必要があります=====

===型もはっきりしている場合に使うとよいでしょう。

より詳しい情報:

于 2010-11-02T17:30:43.223 に答える
1

=== は、変数の型もチェックします。

たとえば、"1" == 1true を返しますが、"1" === 1false を返します。これは、0 または False を返す関数 (strpos など) に特に役立ちます。

strpos は 0 および 0 == false を返すため、これは正しく機能しません。

if (strpos('hello', 'hello world!'))

ただし、これは機能します。

if (strpos('hello', 'hello world!') !== false)
于 2010-11-02T17:30:19.943 に答える
0

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

トリプル = 記号は、2 つの変数 / 式 / 定数が等しいかどうか、および同じ型を持っているかどうかを確認するための比較です。つまり、両方が文字列であるか、両方が整数であるかを確認します。

同じ概念が !== にも適用されます

于 2010-11-02T17:31:58.463 に答える
0

指定された値の型と値の両方が等しい場合にのみ、true を返します。例: 1 === 1 が真 "1" === 1 が偽 1 === "1" が偽 "1" === "1" が真

== と同様に、上記のすべてが真になります

于 2010-11-02T17:33:46.030 に答える
0

2 つの等号を使用する==と、同じ値をチェックします。

if( '1' == 1 ) { echo 'yes'; }

上記のコードは、同じ値を持っているため機能します。

ただし、等号を 3 つ使用する===と、値とデータ型がチェックされます。

したがって

if( '1' === 1 ) { /* this will not work */ }

これは、 whileがor の'1'データ型を持っているためです。string1integernumber

しかし、あなたはこのようなことをすることができます-私は思います:D

if( (integer) '1' === 1 ) { echo 'this works'; }

のデータ型'1'integer

于 2010-11-02T17:34:26.963 に答える