მნიშვნელობითი და ტიპის ტოლობა PHP-ში

დავუშვათ, გსურთ შედარება ისე, რომ ბრჭყალებში მოთავსებული რიცხვი არ იყოს ტოლი იმავე რიცხვის ბრჭყალების გარეშე. სხვა სიტყვებით რომ ვთქვათ, გსურთ შედარება ისე, რომ შედარება მოხდეს არა მხოლოდ მნიშვნელობით, არამედ მონაცემთა ტიპითაც. ამისთვის ოპერატორი == უნდა შეიცვალოს ოპერატორით ===. შედარებას ასეთ ოპერატორთან ეწოდება მკაცრი.

ნახეთ მაგალითი:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // იმუშავებს ამას, რადგან მნიშვნელობები არ არის ტოლი ტიპის მიხედვით
  }
?>

მაგრამ ორი სტრიქონის '3' შედარებისას ეკრანზე გამოჩნდება '+++':

php<?php
  if ('3' === '3') {
    echo '+++'; // იმუშავებს ამას
  } else {
    echo '---';
  }
?>

ასევე, როგორც რიცხვების შედარებისას:

php<?php
  if (3 === 3) {
    echo '+++'; // იმუშავებს ამას
  } else {
    echo '---';
  }
?>

განსხვავება ორ ოპერატორს შორის ვლინდება ზუსტად მაშინ, როდესაც მნიშვნელობები ერთნაირია, მაგრამ განსხვავდება მონაცემთა ტიპი. დანარჩენ შემთხვევებში ეს ოპერატორები მუშაობენ ერთნაირად. მაგალითად, სხვადასხვა რიცხვების შედარებისას, რა თქმა უნდა, გამოიჩნდება მინუსი:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // იმუშავებს ამას
  }
?>

დღესდღეობით PHP-ში საყოველთაოდ მიღებულია ყველგან მკაცრი შედარების გამოყენება. ითვლება, რომ ამ შემთხვევაში კოდი ნაკლებად მიდრეკილია შეცდომებისკენ.

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