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-এর এক্সিকিউশন শেষ হওয়ার পর, এর নীচের সমস্ত case এক্সিকিউট হয়। কখনও কখনও সমস্যা সমাধানের সময় এই বৈশিষ্ট্যটি ব্যবহার করা হয়।

নিম্নলিখিত উদাহরণে, যদি $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;
?>

উপরে আমি লিখেছি যে কখনও কখনও এই বৈশিষ্ট্যটি ব্যবহার করা হয়, কিন্তু আমি, সাধারণভাবে, এটি ব্যবহার না করার পরামর্শ দিই, কারণ কোডটি খুব স্পষ্ট হয়ে ওঠে না।

এই ধরনের কাজ if দিয়ে সমাধান করা বেশি স্পষ্ট:

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