PHP-da shartlardagi jingalak qavslarning ixtiyoriyligi muammosi
PHP yuqorida ko'rsatilgan jingalak qavslar bilan qisqartirishlarga ruxsat bersa-da, men umuman bunday qilishni tavsiya qilmayman, chunki bunday holatlar aniqlash qiyin xatolarning manbai hisoblanadi.
Misol uchun quyidagi kod mavjud deb faraz qilaylik:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Endi faraz qilaylik, shart bajarilgan taqdirda, yana bir
echo qilmoqchi bo'ldik:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Biroq, jingalak qavslarsiz, shart ichida faqat birinchi chiqarish joylashgan, ya'ni birinchi chiqarish shart bajarilganda ishlaydi, ikkinchisi esa har doim ishlaydi.
Aslida bizning kodimiz quyidagiga teng:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // bu qator shartdan tashqarida joylashgan
?>
Asilda biz shunday kodni xohlagan edik:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // bu qator shart ichida
}
?>
Aynan shuning uchun har doim jingalak qavslarni qo'yish tavsiya etiladi, shu kabi xatolarga yo'l qo'ymaslik uchun.
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>