⊗ppPmCdBOP 93 of 447 menu

PHP даги шартлардаги ифода кавалларининг мажбурий эмаслиги муаммоси

PHP юқорида кўрсатилган ифода каваллари билан қисқартиришларга рухсат берса-да, мен умуман, бундай қилишни тавсия бермайман, чунки бу қийин сезиладиган хатолар манбаидир.

Масалан, куйидаги код бор деб фараз қилайлик:

<?php $test = 3; if ($test > 0) echo $test; ?>

Энди деб фараз қилайлик, биз шарт бажарилган тақдирда, яна иккинчи echo ни бажаришни хоҳладик:

<?php $test = 3; if ($test > 0) echo $test; echo '+++'; ?>

Аммо, ифода кавалларисиз шарт ичида фақат биринчи чиқиш (echo) мавжуд, яъни биринчи чиқиш тўғри шартда ишлайди, иккинчиси эса - ҳамеша.

Аслида бизнинг кодимиз шунга тенг кучдадир:

<?php $test = 3; if ($test > 0) { echo $test; } echo '+++'; // бу сатр шартдан ташқарида қолди ?>

Холос, биз бундай кодни хоҳлар эдик:

<?php $test = 3; if ($test > 0) { echo $test; echo '+++'; // бу сатр шарт ичида } ?>

Айнан шу сабабдан, ушбу турдаги хатоларга йўл қўймаслик учун, ҳамеша ифода кавалларини қўйиш тавсия этилади.

Кодни ишга туширмасдан, экранга нима чиқаришини аниқланг:

<?php $num = 5; if ($num === 5) echo $num; echo '+++'; ?>

Кодни ишга туширмасдан, экранга нима чиқаришини аниқланг:

<?php $num = 0; if ($num === 5) echo $num; echo '+++'; ?>

Кодни ишга туширмасдан, экранга нима чиқаришини аниқланг:

<?php $num = 0; if ($num === 5) echo $num; echo '---'; echo '+++'; ?>
uzchyptrupl