PHP if文での「==」と「===」の違い

2021-07-05

if文の比較演算子で、イコールが2個続いた「==」とイコールが3個続いた「===」があります。
この違いですが、下記のサンプルをみれば、同じような値が入っていても実行結果は違います

<?php

$int = 1234;
$str = "1234";

print '== の比較' . "\n";
if ($int == $str) {
  print '$int == $str は同じ' . "\n";
}else{
  print '$int == $str は違う' . "\n";
}

print '=== の比較' . "\n";
if ($int === $str) {
  print '$int === $str は同じ' . "\n";
}else{
  print '$int === $str は違う' . "\n";
}

?>

【実行結果】

== の比較
$int == $str は同じ
=== の比較
$int === $str は違う

PHPマニュアルにあるように、「===」のイコールが3個続いた場合は、int(整数型)、String(文字列型)等のデータの型まで比較します。

データ型まで比較が必要な場合は「===」を使います。それ以外の場合は「==」を利用します

$a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。

$a === $b $a が $b に等しく、および同じ型である場合に TRUE 。

PHP マニュアル 比較演算子 より(http://php.net/manual/ja/language.operators.comparison.php)

プログラミングphp

Posted by admin