PHPの===演算子が===より高速な理由について語る
前回の記事で PHPのrequire_once()関数がうまく機能しない理由の話 前回は、PHPのrequire_once()関数がうまく動作しない理由を紹介しましたので、興味のある方は読んでみてください。
続いて本記事では、PHPの
===
演算子よりも、PHP の
==
の方が速いのですか?
PHP の === と == 演算子、この 2 つの演算子は PHP の比較演算子に属します。
===
という演算子があります。
is absolutely equal to
と
==
演算子は
is equivalent to
.
構文例です。
$a == $b
型変換後の $a が $b と等しい場合に TRUE を返します。
$a === $b
aとbが等しく、かつ同じ型である場合に真。
-
オペランドの型が異なる場合、==と===は異なる結果を生成します。この場合、== は型変換を行った後に比較を行うので、演算子の速度が異なります。
-
オペランドが同じ型であれば、==と===は同じ結果を生成します。この場合、どちらの演算子でも型変換が行われないので、速度はほとんど変わりません。
演算子は、その値が他のオペランドと等しいかどうかを調べるために一時的にデータ型を変換しますが、===は型変換を必要としないため、その分作業が少なく、===演算子より高速に処理できます。
コード例1.
var_dump(0 == "a");
// 1 == 1 -> true
var_dump("1" == "01");
// 10 == 10 -> true
var_dump("10" == "1e1");
// 100 == 100 -> true
var_dump(100 == "1e2");
var_dump(0 === "a");
// "1" === "01" -> false
var_dump("1" === "01");
// "10" === "1e1" -> false
var_dump("10" === "1e1");
// 100 == "1e2" -> false
var_dump(100 === "1e2");
switch ("a") {
case 0:
echo "first case";
break;
case "a":
echo "second case";
break;
}
出力します。
ブーリアンtrue
真
真
真
虚偽
論理演算子 false
論理演算子 false
論理演算子 false
最初のケース
コード例 2.
var_dump(1 == TRUE);
var_dump(0 == FALSE);
var_dump(1 === TRUE);
var_dump(0 === FALSE);
出力します。
ブーリアンtrue
真
虚偽
論理演算子 false
注意: ===演算子は、"型安全比較"を行い、2つのオペランドが同じ型と値の場合のみ真を返しますが、値だけを比較する場合は、===を使用することが可能です。
PHPの==演算子が==より高速な理由については、この記事で全てです。PHPの== ==の内容については、BinaryDevelopの過去の記事を検索するか、以下の記事を引き続き閲覧してください。
関連
最新
-
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でファイルがアップロードされない場合の解析例と解決策
-
php の双方向キューの例
-
php pngの歪みの原因と解決策
-
php セキュリティ 攻撃 世界 unserialize 関数 デシリアライズ 例 詳細
-
phpでファイルをコピーした後にファイル名を変更するコード例
-
MySQLを操作するためのPHPの共通コードスニペットを整理してまとめてみた
-
PHPのrequire_once()関数がうまく機能しない理由の話
-
PHP クラス self と static の類似点と相違点、使い方の詳細
-
phpにおけるintval()の使用例
-
php array_map vs array_walk ケーススタディ