PHP에서 값과 타입의 불일치

!= 연산자 외에도 비교 시 타입을 고려하는 !== 연산자가 있습니다. 예제를 통해 이 둘의 차이점을 살펴보겠습니다.

!= 연산자로 두 숫자 3을 비교한다고 합시다. 이 연산자는 값이 같지 '않은지' 비교합니다. 우리의 값은 정확히 같기 때문에 화면에 '-'가 출력될 것입니다:

php<?php
  if (3 != 3) {
    echo '+++';
  } else {
    echo '---'; // 값이 같으므로 이 부분이 실행됩니다
  }
?>

이제 값 중 하나를 따옴표로 감싸봅시다. 이 경우에도 != 연산자는 여전히 둘을 같다고 판단할 것입니다 (값이 일치하고, 이 연산자에게 타입은 중요하지 않기 때문입니다) 그리고 다시 '-'를 출력할 것입니다:

php<?php
  if ('3' != 3) {
    echo '+++';
  } else {
    echo '---'; // 값이 같으므로 이 부분이 실행됩니다
  }
?>

이제 !== 연산자를 사용하여 두 숫자 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 '---';
  }
?>