[解決済み] PHP の等値演算子 (== double equals) と同一値演算子 (=== triple equals) はどのように違うのでしょうか?
2022-03-18 12:31:39
質問
とはどのような違いがあるのでしょうか。
==
と
===
?
-
は、具体的にどのようにゆるやかに
==
比較作業? -
具体的にどのように厳密な
===
比較作業?
何か参考になる事例があれば教えてください。
どのように解決するのですか?
の違い
==
と
===
の差は、ゆるやかなものです。
==
イコール演算子、および厳密には
===
で説明しています。
マニュアル
:
比較演算子
│ 例 │ 名前 │ 結果 ├──────────┼───────────┼───────────────────────────────────────────────────────────┤ │$a == $b │ Equal │ タイプジャグリングの結果、$a が $b と等しい場合に TRUE。 │ │$a === $b │ 同一 │ $a と $b が等しく、同じ型であれば真とする。 └──────────┴───────────┴───────────────────────────────────────────────────────────┘
ゆるく
==
たいしょう
を使用している場合
==
演算子や、その他の緩やかな比較を行う演算子、例えば
!=
,
<>
または
==
は、常に見ておく必要があります。
文脈
を見ることで、何が、どこで、なぜ変換されるのかを理解することができます。
変換ルール
タイプ別比較表
参考・例として、比較表をご覧ください。 マニュアル :
とのゆるい比較。
==
┌─────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬─────────┬───────┬───────┐ │ │ TRUE │ FALSE │ 1 │ 0 │ -1 │ "1" │ "0" │ "-1" │ NULL │ array() │ "php" │ "" │ │ ├─────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼─────────┼───────┼───────┤ │ true │ true │ false │ true │ false │ true │ true │ false │ false │ true │ false │ true │ false │ true │ false 1 │ true │ false │ true │ false │ false 0 │ false │ true │ false │ true │ false │ -1 │ true │ false │ false │ false │ "1" │ TRUE │ FALSE │ TRUE │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ "0" │ FALSE │ TRUE │ FALSE │ TRUE │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ "-1" │ TRUE │ FALSE │ FALSE │ TRUE │ FALSE │ FALSE │ TRUE │ null │ true │ false │ true │ false │ true │ false │ array() │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ TRUE │ FALSE │ FALSE │ "php" │ TRUE │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ "" │ FALSE │ TRUE │ FALSE │ TRUE │ FALSE │ FALSE │ TRUE │ FALSE │ FALSE │ TRUE └─────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴─────────┴───────┴───────┘
厳密には
===
いちごん
を使用している場合
===
演算子、または厳密な比較を使用するその他の比較演算子
!==
または
===
そうすれば、そのような型が存在しないことを常に確認することができます。
ところてん式に
変換が行われなくなるからです。ですから、厳密な比較では、値だけでなく、型と値も同じでなければなりません。
タイプ別比較表
参考・例として、比較表をご覧ください。 マニュアル :
との厳密な比較。
===
┌─────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬─────────┬───────┬───────┐ │ │ TRUE │ FALSE │ 1 │ 0 │ -1 │ "1" │ "0" │ "-1" │ NULL │ array() │ "php" │ "" │ │ ├─────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼─────────┼───────┼───────┤ │ true │ false │ false │ false │ false 虚偽 │ 虚偽 │ 虚偽 │ 虚偽 │ 虚偽 1 │ 虚偽 │ 虚偽 │ 虚偽 │ 虚偽 0 │ 虚偽 │ 虚偽 │ 虚偽 │ 虚偽 │ -1 │ 虚偽 │ 虚偽 │ 虚偽 │ 虚偽 │ "1" │ FALSE │ TRUE │ FALSE │ TRUE │ FALSE │ FALSE │ TRUE │ "0" │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ "-1" │ FALSE │ FALSE │ FALSE │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE null │ false │ false │ false │ false │ false │ array() │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ False │ "php" │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ "" │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ TRUE │ FALSE │ FALSE │ FALSE │ FALSE │ FALSE │ TRUE └─────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴─────────┴───────┴───────┘
関連
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] パブリック、プライベート、プロテクトの違いは何ですか?
-
[解決済み] PHPのHTTP_HOSTとSERVER_NAMEの違いは何ですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] PHPを使用して2つの日付の差を計算する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】phpは空の時、nullになる?重複