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 '---';
  }
?>