57

私が===意味をなさない PHP 演算子を使用している人がいることに気付きました。関数で試してみましたが、クレイジーな方法で対応しています。

この演算子の定義は何ですか? PHP 演算子の宣言でも見つかりません。

4

10 に答える 10

70
$a === $b     (Identical)      

$aが と等しく$b、それらが同じ型である場合はTRUE 。(PHP 4 で導入)

PHP ドキュメント

于 2009-07-13T06:40:23.643 に答える
59

http://www.php.net/ternary

$a == $b Equal $a が $b と等しい場合は TRUE です。ただし、(True == -1) は True です。

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

> "5" == 5;
True
> "5" === 5;
False
于 2009-07-13T06:42:08.647 に答える
12

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

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

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

于 2009-07-13T06:41:43.627 に答える
12

PHP では、== 演算子または === 演算子を使用して 2 つの値を比較できます。違いは次のとおりです。

PHP は動的なインタープリター型言語であり、データ型に厳密ではありません。これは、必要に応じて、言語自体がデータ型を変換しようとすることを意味します。

echo 4 + "2"; // output is 6

は PHP の数値加算演算子であるため、出力は整数値 6+です。したがって、オペランドに他のデータ型を指定すると、PHP は最初にそれらを適切な型に変換し ("2" は 2 に変換されます)、次に実行します。操作。

データ型が異なる可能性のある 2 つのオペランドを比較演算子として == を使用すると、PHP は 2 番目のオペランドの型を最初の型に変換します。そう:

4 == "4" // 真

PHP は "4" を 4 に変換し、値を比較します。この場合、結果は true になります。

=== を比較演算子として使用すると、PHP はどのデータ型も変換しようとしません。したがって、オペランドの型が異なる場合、それらは同一ではありません。

4 === "4" // 偽

于 2009-07-13T07:16:07.580 に答える
4

この演算子は、PHP だけでなく、多くの動的型付け言語で見られます。

==扱っているものは何でも、比較できる型に変換しようとします。

===タイプと値を厳密に比較します。

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

3 進===数は不便ですが、より安全です。比較のために、それがそうであるべきかどうかについて常に追加の考えを与える必要があり===ます==

于 2009-08-19T07:31:27.533 に答える
3

3 つの等号 === は、2 つの変数が等しく、同じ型であるかどうかを確認します。

于 2009-07-13T06:40:39.603 に答える
1

「PHP three equals operator」でグーグル検索して得た PHP の Double and Triple equals operator を参照してください。

ある時点で、次のように述べています。

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

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

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

于 2009-07-13T06:44:54.010 に答える
1

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

  1. ブール値の false にすることができます
  2. null 値の可能性があります
  3. 本当にゼロかもしれない

したがって、型と値が同じであることを確認するために === が追加されます。

于 2009-07-13T06:55:46.717 に答える
0

「===」は、変数の値と変数のデータ型を一致させます。

于 2009-07-13T07:50:43.610 に答える