PHPにおける値と型の不等性

演算子!=に加えて、比較時に型を考慮する 演算子!==も存在します。 例を用いて両者の違いを見ていきましょう。

演算子!=を用いて2つの数字3を比較するとします。 この演算子は値が等しく"ない"かどうかを比較します。 私たちの値は実際に等しいので、画面には'-'が表示されます:

php<?php
  if (3 != 3) {
    echo '+++';
  } else {
    echo '---'; // 値が等しいため、こちらが実行されます
  }
?>

では、今度は値の一方を引用符で囲ってみましょう。 この場合でも、演算子!=はそれらを等しいとみなします (値が一致しており、この演算子にとって型は重要ではないため)、 再び'-'を出力します:

php<?php
  if ('3' != 3) {
    echo '+++';
  } else {
    echo '---'; // 値が等しいため、こちらが実行されます
  }
?>

では、演算子!==を使って2つの数字3を比較してみましょう。 これもまた等しいと判断し、'-'を出力します:

php<?php
  if (3 !== 3) {
    echo '+++';
  } else {
    echo '---'; // 値が等しいため、こちらが実行されます
  }
?>

しかし、ここで3の一方を引用符で囲むと、 演算子!==は私たちの3を等しくないと判断します。 なぜなら、値は一致していますが、型が異なるからです:

php<?php
  if ('3' !== 3) {
    echo '+++'; // 値が等しくないため、こちらが実行されます
  } else {
    echo '---';
  }
?>
Задание 1

コードを実行せずに、画面に何が表示されるか判断してください:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 != $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 2

コードを実行せずに、画面に何が表示されるか判断してください:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 !== $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 3

コードを実行せずに、画面に何が表示されるか判断してください:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 != $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 4

コードを実行せずに、画面に何が表示されるか判断してください:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 !== $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 5

コードを実行せずに、画面に何が表示されるか判断してください:

php<?php
  $test1 = 3;
  $test2 = 2;
    
  if ($test1 !== $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>