Väärtuse ja tüübi võrdsus PHP-s

Oletame, et soovite võrrelda nii, et jutumärkides olev arv ei oleks võrdne samale arvule jutumärkideta. Teisisõnu soovite võrrelda nii, et võrdlus ei oleks mitte ainult väärtuse, vaid ka andmetüübi alusel. Selleks tuleb operaatori == asemel kasutada operaatorit ===. Sellise operaatoriga võrdlust nimetatakse rangeks.

Vaadake näidet:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // käivitub see, sest väärtused pole tüübi poolest võrdsed
  }
?>

Kuid kahe stringi '3' võrdlemisel kuvatakse ekraanil '+++':

php<?php
  if ('3' === '3') {
    echo '+++'; // käivitub see
  } else {
    echo '---';
  }
?>

Samuti nagu arvude võrdlemisel:

php<?php
  if (3 === 3) {
    echo '+++'; // käivitub see
  } else {
    echo '---';
  }
?>

Kahe operaatori erinevus ilmneb just siis, kui väärtused on samad, kuid andmetüübid erinevad. Muudel juhtudel need operaatorid töötavad samamoodi. Näiteks erinevate arvude võrdlemisel kuvatakse loomulikult miinus:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // käivitub see
  }
?>

Tänapäeval on PHP-s üldiselt aktsepteeritud kasutada kõikjal ranget võrdlust. Arvatakse, et sel juhul on kood vähem vastuvõtlik vigadele.

Задание 1

Määratlege, mis kuvatakse ekraanile, ilma koodi käivitamata:

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

Määratlege, mis kuvatakse ekraanile, ilma koodi käivitamata:

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

Määratlege, mis kuvatakse ekraanile, ilma koodi käivitamata:

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

Määratlege, mis kuvatakse ekraanile, ilma koodi käivitamata:

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

Määratlege, mis kuvatakse ekraanile, ilma koodi käivitamata:

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