payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


switch statements   in Category: पीएचपी   by amit

🕙 Posted on 2023-06-07 at 06:12:52


switch, break, continue

    कई प्रोग्रामर switch(){} ब्लॉक और if(){} elseif(){} else{} ब्लॉक की तुलना करते हैं और सोचते हैं कि दोनों एक जैसे (equi­valent) हैं। यह किसी मामले में सही हो सकता है, लेकिन मेरी राय में, switch का उपयोग वहां किया जाता है जहां आपके पास चर/स्थिर नाम के लिए कई विकल्प होते हैं। वहीं if(){} elseif(){} else{} ब्लॉक कई कंडीशनल एक्सप्रेशंस चेक कर सकते हैं।

    स्विच स्टेटमेंट एक ही एक्सप्रेशन पर IF स्टेटमेंट की एक श्रृंखला के समान है । कई मौकों पर, आप एक ही चर (variable या अभिव्यक्ति) की कई अलग-अलग मानों के साथ तुलना करना चाहते हैं, जिसके आधार पर कि यह किस मूल्य के बराबर है, कोड के एक अलग टुकड़े को निष्पादित करना चाहते हैं। यह वास्तव में स्विच स्टेटमेंट के लिए है। आइए, निम्नलिखित उदाहरणों की जांच करें:

<?php
  $my_score = 75; // डेटा या मूल्य जिसको जांच करना है
  if( $my_score >= 90 ) {
    echo 'A';
  } elseif( $my_score >= 80 ) {
    echo 'B';
  } elseif( $my_score >= 70 ) {
    echo 'C';
  } elseif( $my_score >= 60 ) {
    echo 'D';
  } elseif( $my_score >= 50 ) {
    echo 'E';
  } else {
    echo 'F';
  }
?>

    उपरोक्त if(){} elseif(){} else{} ब्लॉक कुछ व्यावहारिक मामलों में और अधिक जटिल हो सकते हैं, निम्नानुसार हैं। उस स्थिति में, switch(){} ब्लॉक if(){} elseif(){} else{} ब्लॉक से थोड़ा तेज है। यह तब साबित हो जाएगा जब हम यूजर-डिफ़ाइंड कस्टम फ़ंक्शंस के बारे में जानेंगे।

<?php
  $my_score = 75;
  if( $my_score >= 90 ) {
    echo 'A';
    if ( $my_score >= 95 ) echo '+';
  } elseif( $my_score >= 80 ) {
    echo 'B';
    if ( $my_score >= 85 ) echo '+';
  } elseif( $my_score >= 70 ) {
    echo 'C';
    if ( $my_score >= 75 ) echo '+';
  } elseif( $my_score >= 60 ) {
    echo 'D';
    if ( $my_score >= 65 ) echo '+';
  } elseif( $my_score >= 50 ) {
    echo 'E';
    if ( $my_score >= 55 ) echo '+';
  } else {
    echo 'F';
  }
?>

switch(){}ढीली तुलना (loose comparison) की जाँच करता है।

    आइए, निम्नलिखित उदाहरणों में कुछ सरल switch(){} ब्लॉक देखें।

<?php
  $my_grade = 1;
  switch( $my_grade ) {
    case 0:
        echo 'ZERO';
    case 1:
        echo 'ONE';
    case 2:
        echo 'TWO';
    case 3:
        echo 'THREE';
    case 4:
        echo 'FOUR';
    case 5:
        echo 'FIVE';
    default:
        echo 'other';
  }
?>

    जैसा कि आप उपरोक्त उदाहरण में देख सकते हैं, एक स्विच ब्लॉक में कम से कम switch, case और default (आरक्षित कीवर्ड) होते हैं। अंतिम default वैकल्पिक है, और आप इसे छोड़ सकते हैं। हालाँकि, ऊपर दिए गए उदाहरण में, मिलान (compared) किए गए case (मामले) के नीचे सभी कथन निष्पादित किया जाएगा (जब उस तुलना का आउटपुट true है)। उपरोक्त उदाहरण का आउटपुट इस प्रकार है:

ONETWOTHREEFOURFIVEother

    ऊपर दिए गए उदाहरण का वर्णन यहां आपको यह समझाने के लिए किया गया है कि आपको हर case विकल्प के बाद break (आरक्षित कीवर्ड) की भी आवश्यकता है। break (ब्रेक) कीवर्ड वर्तमान ब्लॉक को समाप्त (terminate) करता है और break के उपर सभी कथनों और अभिव्यक्तियों का आउटपुट देता है। उपरोक्त उदाहरण में प्रत्येक case (केस) ब्लॉक में break कीवर्ड जोड़ें −

<?php
  $my_grade = 1;
  switch( $my_grade ) {
    case 0:   echo 'ZERO';   break;
    case 1:   echo 'ONE';   break;
    case 2:   echo 'TWO';   break;
    case 3:   echo 'THREE';   break;
    case 4:   echo 'FOUR';   break;
    case 5:   echo 'FIVE';   break;
    default:   echo 'other';
  }
?>

    उपरोक्त उदाहरण केवल ONE आउटपुट करता है, और break कीवर्ड {} कर्ली ब्रेसिज़ (यानी, स्विच ब्लॉक) से तुरंत बाहर निकल जाता है। उपरोक्त स्विच ब्लॉक निम्नलिखित if-elseif-else ब्लॉक के समान है। जबकि switch() कोष्ठक के अंदर सशर्त अभिव्यक्ति का मूल्यांकन केवल एक बार किया जाता है, if() elseif() elseif() ब्लॉक के प्रत्येक कोष्ठक के अंदर सशर्त अभिव्यक्ति को जितनी बार पारित (passed) किया जाता है, उतनी बार मूल्यांकन किया जाएगा।

<?php
  $my_grade = 1;
  if( $my_grade == 0 ) { echo 'ZERO'; }
  elseif( $my_grade == 1 ) { echo 'ONE'; }
  elseif( $my_grade == 2 ) { echo 'TWO'; }
  elseif( $my_grade == 3 ) { echo 'THREE'; }
  elseif( $my_grade == 4 ) { echo 'FOUR'; }
  elseif( $my_grade == 5 ) { echo 'FIVE'; }
  else { echo 'other'; }
?>


    हालांकि documentation (दस्तावेज) में यह उल्लेख किया गया है कि कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, continue कथन switch पर लागू होता है और break के समान कार्य करता है, हालांकि, आपको वर्तमान (current) switch ब्लॉक को छोड़ने (skip) के लिए continue (आरक्षित कीवर्ड) का उपयोग नहीं करना चाहिए।

    PHP में switch स्टेटमेंट को continue के प्रयोजनों के लिए एक लूपिंग संरचना माना जाता है। continue break की तरह व्यवहार करता है (जब कोई तर्क पारित नहीं किया जाता है) लेकिन एक warning (चेतावनी) देगा कि एक गलती होने की संभावना है। यदि switch एक लूप के अंदर है, तो continue 2 बाहरी लूप के अगले पुनरावृत्ति के साथ जारी रहेगा।

<?php
  $my_grade = 2;
  switch( $my_grade ) {
    case 0:   echo 'ZERO';   continue;
    case 1:   echo 'ONE';   continue;
    case 2:   echo 'TWO';   continue;
    case 3:   echo 'THREE';   continue;
    case 4:   echo 'FOUR';   continue;
    case 5:   echo 'FIVE';   continue;
    default:   echo 'other';
  }
?>

    उपरोक्त उदाहरण चेतावनी के बाद अंत में TWO आउटपुट करेगा जब $my_grade = 2 है। पैरेंट {} कर्ली ब्रेसिज़ (ब्लॉक) को break और continue के लिए break 2 और continue 2 उपयोग किया जाता है। इन्हें अगले पृष्ठ में समझाया जाएगा।


Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 4

Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 5

Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 6

Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 7

Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 8

Warning: "continue" targeting switch is equivalent to "break" in C:\xampp\htdocs\php_project\phptest.php on line 9
TWO

    switch break continue आदि के बारे में आप अगले पेज में और अधिक जानेंगे।


Leave a Comment: