1. ホーム
  2. Web プログラミング
  3. PHP プログラミング
  4. phpのヒント

PHPの===演算子が===より高速な理由について語る

2022-01-15 20:14:24

前回の記事で 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の過去の記事を検索するか、以下の記事を引き続き閲覧してください。