Érték és típus szerinti egyenlőség a PHP-ban

Tegyük fel, hogy úgy szeretne összehasonlítani, hogy a szám idézőjelben ne legyen egyenlő ugyanazzal a számmal idézőjelek nélkül. Más szóval, azt szeretné, hogy az összehasonlítás ne csak az érték, hanem az adattípus szerint is történjen. Ehhez a == operátor helyett a === operátort kell használni. Az ilyen operátorral végzett összehasonlítást szigorúnak nevezzük.

Nézd meg a példát:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // ez fog lefutni, mert az értékek típusa nem egyenlő
  }
?>

Viszont két '3' string összehasonlításakor a képernyőre '+++' íródik ki:

php<?php
  if ('3' === '3') {
    echo '+++'; // ez fog lefutni
  } else {
    echo '---';
  }
?>

Ugyanígy számok összehasonlításakor:

php<?php
  if (3 === 3) {
    echo '+++'; // ez fog lefutni
  } else {
    echo '---';
  }
?>

A két operátor közötti különbség pontosan akkor nyilvánul meg, amikor az értékek ugyanazok, de az adattípus különbözik. Minden más esetben ezek az operátorok ugyanúgy működnek. Például, különböző számok összehasonlításakor természetesen mínusz jelenik meg:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // ez fog lefutni
  }
?>

Manapság a PHP-ban általánosan elfogadott, hogy mindenhol szigorú összehasonlítást használjunk. Úgy tartják, hogy ebben az esetben a kód kevésbé hajlamos hibákra.

Задание 1

A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:

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

A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:

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

A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:

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

A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:

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

A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:

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