PHP'de if Koşullarında Küme Parantezlerinin İsteğe Bağlı Olması Sorunu
PHP'nin yukarıda gösterilen küme parantezi kısaltmalarına izin vermesine rağmen, genel olarak bunu yapmanızı tavsiye etmiyorum, çünkü bu, tespit edilmesi zor hatalar için bir yuva görevi görür.
Örneğin aşağıdaki kod olduğunu varsayalım:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Şimdi diyelim ki koşul sağlandığında bir de ikinci bir
echo yapmaya karar verdik:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Ancak, küme parantezleri olmadan koşulun içinde sadece ilk çıktı işlemi bulunur, yani ilk çıktı koşul doğru olduğunda çalışırken, ikincisi - her zaman çalışacaktır.
Aslında kodumuz şununla eşdeğerdir:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // bu satır koşulun dışında kaldı
?>
Oysa biz şöyle bir kod istiyorduk:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // bu satır koşulun içinde
}
?>
İşte bu nedenle, bu tür hatalara düşmemek için her zaman küme parantezlerinin kullanılması tavsiye edilir.
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Kodu çalıştırmadan, ekrana ne yazdırılacağını belirleyin:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>