არააკაშკაშანი შედარება ლოგიკური მნიშვნელობებისა PHP-ში
წინა მაგალითში შედარებისთვის გამოვიყენე
ოპერატორი ===. ამ შემთხვევაში, ჩვენი ცვლადი
შედარებული იყო true-თან
როგორც მნიშვნელობით, ასევე ტიპით.
ჩვენს ამოცანაში შეიძლება გამოვიყენოთ ოპერატორი
==. თუ ცვლადში test
ყოველთვის იქნება ერთ-ერთი მნიშვნელობა true
ან false, მაშინ არაფერი შეიცვლება:
<?php
$test = true; // აქ ვწერთ ან true, ან false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
მაგრამ თუ ცვლადში $test შესაძლოა
მოხვდნენ ნებისმიერი მნიშვნელობები, მაშინ ყველაფერი ბევრად
უფრო რთული ხდება. ასეთ შემთხვევაში, თუ ცვლადში
არ იქნება ლოგიკური მნიშვნელობა, მაშინ ეს მნიშვნელობა
თავდაპირველად გარდაიქმნება ლოგიკურ ტიპში და მხოლოდ
ამის შემდეგ შედარებულ იქნება.
ვთქვათ, მაგალითად, ჩვენს ცვლადში იქნება
რიცხვი 1. ამ შემთხვევაში იგი თავდაპირველად
გარდაიქმნება ლოგიკურ ტიპში, ანუ
true-ში. და შემდეგ შესრულდება შედარება:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // ეს იმუშავებს, რადგან 1 == true - ეს სწორია
} else {
echo '---';
}
?>
მაგრამ, მაგალითად, რიცხვი 0 გარდაიქმნება
false-ში. და ჩვენი პირობა შედეგად
იქნება მცდარი:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // ეს იმუშავებს, რადგან 0 == true - ეს არასწორია
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
კოდის გაშვების გარეშე, დაადგინეთ, რა დაიბეჭდება ეკრანზე:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>