PHP-də şərtlərdə fiqurlu mötərizələrin isteğe bağlı olması problemi
PHP-nin yuxarıda göstərilən fiqurlu mötərizəli qısaltmalara icazə verməsinə baxmayaraq, mən ümumiyyətlə bunu etməyi tövsiyə etmirəm, çünki bu, aşkar edilmesi çətin xətalar üçün məhsuldar bir yerdir.
Məsələn, aşağıdakı kod nümunəsi götürək:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Tutaq ki, indi biz qərar verdik ki, şərt ödənildikdə,
ikinci bir echo da yerinə yetirək:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Ancaq, fiqurlu mötərizələr olmadan, şərtin daxilində yalnız birinci çap durur, yəni birinci çap şərt doğru olduqda işləyəcək, ikincisi isə həmişə.
Əslində bizim kodumuz belə bir kodla ekvivalentdir:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // bu sətir şərtin xaricində qaldı
?>
Oysa biz belə bir kod istəyirdik:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // bu sətir şərtin daxilində
}
?>
Məhz buna görə də həmişə fiqurlu mötərizələri qoymağı tövsiyə edirəm, beləliklə bu cür xətalarə düşməsiniz.
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>