Mantiqiy qiymatlar va ikkita barobar
Oldingi misolda === operatoridan foydalandim. Bu holatda o‘zgaruvchi true qiymati va ma'lumot turi bo‘yicha solishtiriladi.
Bizning holatda == operatoridan ham foydalanish mumkin. Agar $test har doim true yoki false qiymatlaridan biriga ega bo‘lsa, hech narsa o‘zgarmaydi:
<?php
$test = true; // bu erda biz true yoki false yozamiz
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Agar $test o‘zgaruvchisiga har qanday qiymat tushishi mumkin bo‘lsa, vaziyat murakkablashadi. Bunday holatda, avval qiymat boolean ga o‘zgartiriladi, so‘ngra solishtirish amalga oshiriladi.
Aytaylik, o‘zgaruvchi ichida 1 soni bor. Bu holda, u avval mantiqiy (boolean) turga o‘tkaziladi va true ga aylanadi. So‘ngra solishtirish amalga oshiriladi:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // bu ishlaydi, chunki 1 == true - bu to'g'ri
} else {
echo '---';
}
?>
Masalan, 0 soni false ga aylantiriladi. Natijada shart noto‘g‘ri (false) bo‘ladi:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // bu ishlaydi, chunki 0 == true - bu to'g'ri EMAS
}
?>
№1
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
№2
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
№3
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
№4
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
№5
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
№6
Kodni ishga tushirmasdan, ekranda nima paydo bo'lishini aniqlang:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>