PHP-də məntiqi qiymətlərin qeyri-ciddi müqayisəsi
Əvvəlki misalda müqayisə üçün
=== operatorundan istifadə etmişdim.
Bu halda bizim dəyişənimiz
true ilə həm qiymət,
həm də tip baxımından bərabərlik yoxlanılır.
Bizim məsələdə == operatorundan da
istifadə etmək olar. Əgər test
dəyişənində həmişə true
ya da false qiymətlərindən biri olarsa,
heç nə dəyişməyəcək:
<?php
$test = true; // bura ya true, ya da false yazırıq
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Amma əgər $test dəyişəninə
istənilən tipli qiymətlər düşə bilərsə,
onda hər şey daha mürəkkəb olur.
Belə bir halda, əgər dəyişəndə
məntiqi qiymət deyilsə, bu qiymət
əvvəlcə məntiqi tipə çevriləcək və yalnız
ondan sonra müqayisə ediləcək.
Məsələn, tutaq ki, dəyişənimizdə
1 rəqəmi var. Bu halda əvvəlcə o,
məntiqi tipə, yəni
true-a çevriləcək. Və sonra müqayisə yerinə yetiriləcək:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // bu işləyəcək, cunki 1 == true - bu doğrudur
} else {
echo '---';
}
?>
Amma, məsələn, 0 rəqəmi
false-a çevrilir.
Və nəticədə şərtimiz yalan olacaq:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // bu işləyəcək, cunki 0 == true - bu doğru DEYİL
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>