PHP да break-нинг ихтиёрийлиги

break буйруги ихтиёрийдир. Бирок, унсиз, case блокларининг ҳаракати кутмаган бўлади. Келиб, мисолда кўрайлик. Бизда мана шундай код бор бўлсин:

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

Ундаги барча break-ларни олиб ташлаймиз, ва $num ўзгарувчисига бошлаш учун 3 сонини ёзайлик.

️ Ҳозирча ҳамма нарса илгариги каби ишлайди:

php<?php
  $num = 3; // бу ерда 3 сони бўлсин
  
  switch ($num) {
    case 1:
      echo 1;
    case 2:
      echo 2;
    case 3:
      echo 3;
  }
  
  // Код ишга туширилгандан сўнг 3 ни чиқаради - ҳаммаси яхши
?>

️ Энди $num ўзгарувчисига 2 сонини ёзайлик. Бу ҳолатда биз кутган аниқ case 2 бажарилади, ва сўнгра кутмаган ҳолда case 3 ҳам бажарилади:

php<?php
  $num = 2;
  
  switch ($num) {
    case 1:
      echo 1;
    case 2:
      echo 2;
    case 3:
      echo 3;
  }
  
  // Код ишга туширилгандан сўнг аввал 2 ни, сўнгра 3 ни чиқаради
?>

️ Агар $num ўзгарувчисига 1 сонини ёзсак, у ҳолда умуман барча case конструкциялари бажарилади:

php<?php
  $num = 1;
  
  switch ($num) {
    case 1:
      echo 1;
    case 2:
      echo 2;
    case 3:
      echo 3;
  }
  
  // Код ишга туширилгандан сўнг аввал 1 ни, сўнгра 2 ни, сўнгра 3 ни чиқаради
?>

️ Яъни, break бўлмаганда, режалаштирилган case бажарилгандан сўнг, ундан pastdagi барча case-лар ҳам бажарилади. Бaъзан бундай хусусиятдан масалаларни ечishda фойдаланилади.

️ Кейинги мисолда, агар $num ўзгарувчисининг қиймати 1 ёки 2 бўлса, $res ўзгарувчисига 'a' ёзилади. ️ Агар $num ўзгарувчисининг қиймати 3 бўлса, у ҳолда $res ўзгарувчисига 'b' ёзилади:

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

️ Юқорида мен айтганман, бaъзан бундай хусусиятдан фойдаланилади, лекин мен, умуман олганда, уни ишлатишни tavsiya qilmayman, чунки код жуда аник ️ бўлиб қолмайди.

️ Бундай масалани if-лар орқали ечиш аникрокдир:

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