Koder.uz

3 of 402 menu

PHPda break ixtiyoriy

break komandasi majburiy emas. Biroq, agar u ishlatilmasa, case bloklarining ishlashi kutilmagan natijalarga olib kelishi mumkin. Keling, misolda ko‘rib chiqamiz. Quyidagi kod mavjud bo‘lsin: 

<?php $num = 1; switch ($num) { case 1: echo 1; break; case 2: echo 2; break; case 3: echo 3; break; } ?>

 Undagi barcha breaklarni olib tashlaymiz va dastlab $num o‘zgaruvchisiga 3 sonini yozamiz. 

Hozircha hammasi avvalgidek ishlaydi: 

<?php $num = 3; // bu erda 3 raqami bo'lsin switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Ishga tushgandan so'ng, kod 3 ni chiqaradi-hammasi yaxshi ?>

Keling, endi $num o‘zgaruvchisiga 2 sonini yozamiz. 

Bu holatda kutilganidek case 2 bajariladi, lekin kutilmaganda case 3 ham ishlaydi: 

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Ishga tushgandan so'ng, kod 2 va keyin 3 ni chiqaradi ?>

Agar $num o‘zgaruvchisiga 1 sonini yozsak, u holda barcha case bloklari bajariladi (agar mos kelsa): 

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Ishga tushgandan so'ng, kod 1, keyin 2 va keyin 3 ni chiqaradi ?>

 Ya’ni, agar break bo‘lmasa, tanlangan case bajarilgandan so‘ng, pastdagi barcha case bloklari ham bajariladi. Ba’zan bu xususiyat muayyan masalalarni yechishda foydali bo‘lishi mumkin. 

 Agar $num o'zgaruvchisi 1 yoki 2 ga teng bo'lsa, $res o'zgaruvchisi 'a' qiymatini oladi. Agar $num 3 ga teng bo'lsa, $res o'zgaruvchisi 'b' qiymatini oladi: 

<?php $num = 1; switch ($num) { case 1: case 2: $res = 'a'; break; case 3: $res = 'b'; break; } echo $res; ?>

 Yuqorida men yozganimdek, ba'zan bunday xususiyatdan foydalanishadi, ammo aslida men uni ishlatishni tavsiya qilmayman, chunki kod unchalik aniq bo'lmaydi. 

 Bunday vazifani if operatorlari yordamida hal qilish aniqroq bo'ladi: 

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>


uz ru
light night