[解決済み] PHPで!=と!==が等しくない場合
2022-03-03 10:13:18
質問
いつもこうしている
if ($foo !== $bar)
しかし、私は気づいたのです。
if ($foo != $bar)
も正しいです。
ダブル
=
はまだ動作しますし、これまでも動作していましたが、PHP の演算子で検索しても、ダブル
=
ということは、私はいつもこの方法を間違えていたのだと思いますが、とにかく動作します。私の
!==
から
!=
ただ、そのためだけに?
解決方法は?
==
と
!=
は、比較する変数のデータ型を考慮しません。そのため、これらはすべてtrueを返すことになります。
'0' == 0
false == 0
NULL == false
===
と
!==
する
は、データ型を考慮します。つまり、文字列とブーリアンの比較は
決して
というのも、例えば両者は型が異なるからです。これらはすべてfalseを返します。
'0' === 0
false === 0
NULL === false
真偽があいまいな値を返す可能性がある関数は、データ型を比較する必要があります。よく知られている例としては
strpos()
:
// This returns 0 because F exists as the first character, but as my above example,
// 0 could mean false, so using == or != would return an incorrect result
var_dump(strpos('Foo', 'F') != false); // bool(false)
var_dump(strpos('Foo', 'F') !== false); // bool(true), it exists so false isn't returned
関連
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] PHP の等値演算子 (== double equals) と同一値演算子 (=== triple equals) はどのように違うのでしょうか?