არააკაშკაშანი შედარება ლოგიკური მნიშვნელობებისა PHP-ში

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

ჩვენს ამოცანაში შეიძლება გამოვიყენოთ ოპერატორი ==. თუ ცვლადში test ყოველთვის იქნება ერთ-ერთი მნიშვნელობა true ან false, მაშინ არაფერი შეიცვლება:

php<?php
  $test = true; // აქ ვწერთ ან true, ან false
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>

მაგრამ თუ ცვლადში $test შესაძლოა მოხვდნენ ნებისმიერი მნიშვნელობები, მაშინ ყველაფერი ბევრად უფრო რთული ხდება. ასეთ შემთხვევაში, თუ ცვლადში არ იქნება ლოგიკური მნიშვნელობა, მაშინ ეს მნიშვნელობა თავდაპირველად გარდაიქმნება ლოგიკურ ტიპში და მხოლოდ ამის შემდეგ შედარებულ იქნება.

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

php<?php
  $test = 1;
  
  if ($test == true) {
    echo '+++'; // ეს იმუშავებს, რადგან 1 == true - ეს სწორია
  } else {
    echo '---';
  }
?>

მაგრამ, მაგალითად, რიცხვი 0 გარდაიქმნება false-ში. და ჩვენი პირობა შედეგად იქნება მცდარი:

php<?php
  $test = 0;
  
  if ($test == true) {
    echo '+++';
  } else {
    echo '---'; // ეს იმუშავებს, რადგან 0 == true - ეს არასწორია
  }
?>
Задание 1

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

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

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

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

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

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

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

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

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

php<?php
  $test = '';
    
  if ($test == false) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 6

კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:

php<?php
  if ($test == true) {
    echo '+++';
  } else {
    echo '---';
  }
?>