PHPにおける値と型の不等性
演算子!=に加えて、比較時に型を考慮する
演算子!==も存在します。
例を用いて両者の違いを見ていきましょう。
演算子!=を用いて2つの数字3を比較するとします。
この演算子は値が等しく"ない"かどうかを比較します。
私たちの値は実際に等しいので、画面には'-'が表示されます:
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // 値が等しいため、こちらが実行されます
}
?>
では、今度は値の一方を引用符で囲ってみましょう。
この場合でも、演算子!=はそれらを等しいとみなします
(値が一致しており、この演算子にとって型は重要ではないため)、
再び'-'を出力します:
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // 値が等しいため、こちらが実行されます
}
?>
では、演算子!==を使って2つの数字3を比較してみましょう。
これもまた等しいと判断し、'-'を出力します:
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // 値が等しいため、こちらが実行されます
}
?>
しかし、ここで3の一方を引用符で囲むと、
演算子!==は私たちの3を等しくないと判断します。
なぜなら、値は一致していますが、型が異なるからです:
<?php
if ('3' !== 3) {
echo '+++'; // 値が等しくないため、こちらが実行されます
} else {
echo '---';
}
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>