किसी भी तरह से ब्रेक अगर PHP में बयान?


129

वहाँ PHP में किसी भी कमांड मौजूदा या माता-पिता को क्रियान्वित करने को रोकने के लिए है ifबयान, के रूप में ही breakया break(1)के लिए switch/ loop। उदाहरण के लिए

$arr=array('a','b');
foreach($arr as $val)
{
  break;
  echo "test";
}

echo "finish";

उपरोक्त कोड में PHP नहीं echo "test";चलेगा और जाएगाecho "finish";

मुझे इसके लिए चाहिए

$a="test";
if("test"==$a)
{
  break;
  echo "yes"; // I don't want this line or lines after to be executed, without using another if
}
echo "finish";

मैं ऊपर दिए breakगए ifकथन को लागू करना चाहता हूं echo "yes";या ऐसे कोड को बंद करना चाहता हूं या जिन्हें निष्पादित करना आवश्यक नहीं है, अतिरिक्त स्थिति हो सकती है या नहीं भी हो सकती है, क्या ऐसा करने का कोई तरीका है?

अपडेट: इस प्रश्न को पोस्ट करने के 2 साल बाद, मैं बड़ा हुआ, मैंने सीखा कि कैसे कोड को छोटे टुकड़ों में लिखा जा सकता है, क्यों नेस्ट हो सकता है अगर कोड गंध हो सकता है और पहली जगह पर इस तरह की समस्याओं को प्रबंधनीय, छोटे कार्यों को लिखने से कैसे बचा जा सकता है।


15
आपके किसी भी उदाहरण से कोई मतलब नहीं है।
टिम पीटरज़

1
@Usman: यदि कोई शर्त नहीं है, तो echo(आपके उदाहरण में) कभी भी निष्पादित नहीं किया जाएगा। इसलिए आप इसे हटा भी सकते हैं।
ओलिवर चार्ल्सवर्थ

2
try catchएक विकल्प नहीं है?
गियान्निस क्रिस्टोफकिस

पहले मुझे लगा कि टिम सिर्फ असभ्य था ... लेकिन फिर मैंने सोचा कि वह सही है ... बिना शर्त ब्रेक के पीछे आपका कोई कोड क्यों होगा? डिबगिंग? मैं जारी रखने के लिए छोरों के लिए तोड़ना पसंद करता हूं; और "बस यहीं रुक जाओ" कमांड के साथ बहुत कठिन प्रश्नों को तोड़ना अच्छा होगा ...if (condition) { if ( oneothercondition ) stop; if ( yetothercondition ) stop; // go ahead , all is fine }
जोरी

@ जोरी मैं मुहम्मद के शुरुआती विचारों को नहीं जानता कि उन्हें ब्रेक की आवश्यकता क्यों थी; लेकिन मेरे मामले में अब यह डिबगिंग उद्देश्य है, ठीक है। कुछ मामलों में यह समय की बचत करेगा। ऐसे मामलों में जब ब्रेकपॉइंट्स को जोड़ने में सक्षम नहीं किया जा रहा है '(जब एक आईडीई और / या कुछ कारणों से लाइव साइट पर काम नहीं करना है, आदि)
विक्टर Borítás

जवाबों:


216

अन्य उपयोगकर्ताओं की टिप्पणियों के बारे में चिंता न करें, मैं आपको यह समझ सकता हूं, इस "फैंसी" चीजों को विकसित करने के दौरान सोम्स की आवश्यकता होती है । यदि हम एक को तोड़ सकते हैं, तो बहुत सारे नेस्टेड यदि आवश्यक नहीं होंगे, तो कोड को अधिक स्वच्छ और सौंदर्यपूर्ण बना देगा।

यह नमूना कोड बताता है कि CERTAINS SITUATIONS जहां टूट गया है अगर बहुत बदसूरत नेस्टेड ifs की तुलना में अधिक उपयुक्त हो सकता है ... अगर आपने सामना नहीं किया है कि कुछ निश्चित स्थिति का मतलब यह नहीं है कि इसका अस्तित्व नहीं है

बदसूरत कोड

if(process_x()) {

    /* do a lot of other things */

    if(process_y()) {

         /* do a lot of other things */

         if(process_z()) {

              /* do a lot of other things */
              /* SUCCESS */

         }
         else {

              clean_all_processes();

         }

    }
    else {

         clean_all_processes();

    }

}
else {

    clean_all_processes();

}

गुड लुकिंग कोड

do {

  if( !process_x() )
    { clean_all_processes();  break; }

  /* do a lot of other things */

  if( !process_y() )
    { clean_all_processes();  break; }

  /* do a lot of other things */

  if( !process_z() )
    { clean_all_processes();  break; }

  /* do a lot of other things */
  /* SUCCESS */

} while (0);

जैसा कि @NiematojakTomasz कहता है, का उपयोग gotoएक विकल्प है, इस बारे में बुरी बात यह है कि आपको हमेशा लेबल (बिंदु लक्ष्य) को परिभाषित करने की आवश्यकता होती है।


29
महान! कभी-कभी उनके गहरे अर्थों के कारण प्रश्नों को गलत समझा जाता है। आप इसे पूरी तरह से मिल गया, मैं साफ कोड की जरूरत है पर नज़र रखने के अंत से बचने के लिएif
मुहम्मद उस्मान

4
मुझे प्रत्येक सफल परीक्षण (लगभग 3 या 4 परीक्षण) के बाद उसी कोड को निष्पादित करने की आवश्यकता थी, और elseifप्रत्येक असफल परीक्षण पर डाल दिया । यह मैं वास्तव में क्या खोज रहा था, चुंबन और सूखी शिकायत :) धन्यवाद अब मेरी कोड है!
s3v3n

3
यार यह गंदा लगता है! लेकिन यह मेरा उत्थान हो जाता है .. मैं एक गंदे सिस्टम पर काम कर रहा हूं;)
लियोनार्डकैल्सिस

8
@rdlowrey, बात नि: शुल्क है, इसलिए कृपया हमें ओपी प्रश्न को हल करने के लिए "अच्छी तरह से लिखित OOP" का एक उदाहरण दिखाएं: 3
AgelessEssence

7
व्यक्तिगत हमलों के लिए नमूना के अनुरोध को भ्रमित न करें ... वास्तव में, आप कुछ महत्वपूर्ण याद कर रहे हैं, न कि सभी कोडिंग OOP होनी चाहिए, एक पागल चीज है जो OOP के जादू * के साथ सरल कार्य लिख रही है।
एगलेसनेंस

98

किसी फ़ंक्शन में अपने कोड को इनकैप्सुलेट करें। आप returnकिसी भी समय किसी फ़ंक्शन को निष्पादित करना बंद कर सकते हैं ।


2
मैं हालांकि आप एक, एक समारोह नहीं चाहता था? ;)
अरनौद ले ब्लैंक

3
@ arnaud576875 यदि कोड किसी फ़ंक्शन में है, तो यदि आप स्टेटमेंट में रिटर्न का उपयोग कर सकते हैं, तो निष्पादन को तोड़ने के लिए।
मैक्सिम क्रिज़ानोवस्की

1
एक फ़ंक्शन में "1 रास्ता" और "1 रास्ता बाहर" होना चाहिए। मल्टीपल रिटर्न्स मैला और त्रुटि प्रवण है।
ओल्ड मैन वाल्टर

@OldManWalter केवल वास्तविक डेटा वापस करने के लिए सही है। हालाँकि त्रुटि से निपटने के लिए इस नियम का एक सामान्य अपवाद है। सामान्य स्थान पर "1 रास्ता, 1 रास्ता बाहर" को मारने के बिना कई स्थानों में एक अपवाद या वापसी झूठी पूरी तरह से स्वीकार्य है, मानसिकता के खिलाफ की रक्षा करने की कोशिश कर रहा है।
danielson317

41

ऐसा करने का उचित तरीका:

try{
    if( !process_x() ){
        throw new Exception('process_x failed');
    }

    /* do a lot of other things */

    if( !process_y() ){
        throw new Exception('process_y failed');
    }

    /* do a lot of other things */

    if( !process_z() ){
        throw new Exception('process_z failed');
    }

    /* do a lot of other things */
    /* SUCCESS */
}catch(Exception $ex){
    clean_all_processes();
}

कुछ टिप्पणियों को पढ़ने के बाद, मैंने महसूस किया कि अपवाद हैंडलिंग हमेशा सामान्य प्रवाह नियंत्रण के लिए समझ में नहीं आता है। सामान्य नियंत्रण प्रवाह के लिए "यदि और" का उपयोग करना बेहतर है:

try{
  if( process_x() && process_y() && process_z() ) {
    // all processes successful
    // do something
  } else {
    //one of the processes failed
    clean_all_processes();
  }
}catch(Exception ex){
  // one of the processes raised an exception
  clean_all_processes();
}

आप वेरिएबल्स में प्रोसेस रिटर्न वैल्यूज को भी सेव कर सकते हैं और फिर फेल / अपवाद ब्लॉक में चेक कर सकते हैं कि कौन सा प्रोसेस फेल हुआ है।


1
अपवाद इस मामले में उपयोगी हो सकते हैं लेकिन ऐसा लगता है कि आप उनका दुरुपयोग करते हैं। अपवाद असाधारण हैं, सामान्य कार्यक्रम प्रवाह के लिए नहीं। यदि विफलता असाधारण है, तो process_x-z को अपवाद को स्वयं ही फेंक देना चाहिए; clean_all_processes () अंत में ब्लॉक में बेहतर होगा क्योंकि यह साफ है जो वैसे भी किया जाना चाहिए।
जिमी टी।

मैंने समाधान में सुधार किया है।
राहुल रंजन

कारण जिसका मैंने अंत में उपयोग नहीं किया, वह php5.5 तक समर्थित नहीं है
राहुल रंजन

20

क्योंकि आप कर सकते हैं तोड़ने के एक करते हैं से बाहर / जबकि पाश, हमें "चलो करना एक दौर"। एक साथ , जबकि (गलत) अंत में, हालत सही नहीं है और फिर से दोहराना नहीं होगा।

do
{
    $subjectText = trim(filter_input(INPUT_POST, 'subject'));
    if(!$subjectText)
    {
        $smallInfo = 'Please give a subject.';
        break;
    }

    $messageText = trim(filter_input(INPUT_POST, 'message'));
    if(!$messageText)
    {
        $smallInfo = 'Please supply a message.';
        break;
    }
} while(false);

कोई नहीं कहता है कि आपको इसका उपयोग करना चाहिए। यह केवल "ब्रेक" करने के लिए एक उदाहरण है।
मार्कस ज़ेलर

2
सुव्यवस्थित दृष्टिकोण - काम करता है।
बेंजामिनहल

16

गोटो :

गोटो ऑपरेटर कार्यक्रम में एक और अनुभाग पर जाने के लिए इस्तेमाल किया जा सकता है। लक्ष्य बिंदु को एक लेबल द्वारा निर्दिष्ट किया जाता है जिसके बाद एक बृहदान्त्र होता है, और निर्देश वांछित लक्ष्य लेबल के बाद गोटो के रूप में दिया जाता है । यह पूर्ण अप्रतिबंधित गोटो नहीं है । लक्ष्य लेबल एक ही फ़ाइल और संदर्भ में होना चाहिए, जिसका अर्थ है कि आप किसी फ़ंक्शन या विधि से बाहर नहीं जा सकते हैं, न ही आप एक में कूद सकते हैं। आप किसी भी प्रकार के लूप या स्विच संरचना में नहीं जा सकते। आप इनमें से कूद सकते हैं, और एक आम उपयोग एक बहु-स्तरीय विराम के स्थान पर गोटो का उपयोग करना है ...


82
हर बार जब आप उपयोग करते हैं goto, बेबी यीशु एक बिल्ली का बच्चा खाता है। इसके अलावा, xkcd.com/292

12
सुसंगत होने के लिए क्षमा करें। मैंने उल्लेखित कीवर्ड के सटीक उपयोग की व्याख्या करते हुए php मैनुअल पेज को संदर्भित किया है। और यहां तक ​​कि अगर यह गंदा समाधान है यह अभी भी सही समाधान है।
नीमातोजजकोतमास

3
मुझे ठीक से समझ में नहीं आता कि ऐसा करना अच्छा कैसे नहीं है? यह अन्य सभी समाधानों की तुलना में बहुत सरल है?
1238 बजे 538ROMEO

1
सेबेस्टियन के साथ सहमत हुए। कुछ मामलों में, गोटो ऑपरेटर बहुत उपयोगी है, और सरल है।
जेरी

6
चिंता न करें, प्रोग्रामर आपको हमेशा महसूस करेंगे कि आप ठीक से कोडिंग नहीं कर रहे हैं और हम चाहते हैं कि हम उनकी तरह कोड करें। यह php समुदाय में और भी अधिक सच है क्योंकि हम हिपस्टर कॉडर्स का एक समूह हैं और PHP हमें इन स्वतंत्रता कीवर्ड और हर किसी की चीजों के बारे में इतना निर्णय लेने की स्वतंत्रता देता है। मैंने gotoउत्पादन कोड में कीवर्ड का उपयोग (बड़े पैमाने पर नहीं) किया है और मुझे कभी परेशानी नहीं हुई।
vdegenne

7

वहाँ मौजूद आदेश: goto

if(smth) {
   .....
   .....
   .....
   .....
   .....
   goto Area1;
   .....
   .....


}



Area1:
....your code here....

हालाँकि, याद रखना gotoएक अनुशंसित अभ्यास नहीं है, क्योंकि यह कोड को असामान्य रूप से स्वरूपित करने के लिए बनाता है।


1
मैंने इस स्क्रिप्ट का परीक्षण किया है, गोटो एरिया 1 के नीचे का कोड; निष्पादित नहीं किया जाएगा।
लियोन आर्मस्ट्रांग

6

आप एक का उपयोग करते हुए (झूठा) कर सकते हैं:

    <?php
    do if ($foo)
    {
      // Do something first...

      // Shall we continue with this block, or exit now?
      if ($abort_if_block) break;

      // Continue doing something...

    } while (false);
    ?>

जैसा कि http://php.net/manual/en/control-structures.if.php#90073 में वर्णित है


5

नहीं, अगर आप लूप्स के अंदर हैं तो ब्लॉक को "ब्रेक" करने का कोई तरीका नहीं है। :(
तो अपने परीक्षण को एक में बदल दें switch!

मुझे आश्चर्य है कि क्यों कोई आप का उपयोग करने के लिए प्रोत्साहित स्विच बयान के बाद से (कई परीक्षण मामलों के लिए भले ही आप नहीं किया है)
आपको लगता है कि यह बहुत वर्बोज़ है है?

मैं यहां जरूर जाऊंगा

  switch($a){
    case 'test':
        # do stuff here ...
        if(/* Reason why you may break */){
           break; # this will prevent executing "echo 'yes';" statement
        }
        echo 'yes';  # ...           
        break; # As one may already know, we might always have to break at the end of case to prevent executing following cases instructions.
    # default:
        # something else here  ..
        # break;
  }

मेरे लिए अपवाद त्रुटियों को बढ़ाने के लिए हैं और वास्तव में निष्पादन दोष को नियंत्रित करने के लिए नहीं हैं।
यदि आप जिस ब्रेक व्यवहार को सेट करने का प्रयास कर रहे हैं, वह अप्रत्याशित त्रुटि के बारे में नहीं है, तो अपवाद हैंडलिंग यहां सही समाधान नहीं है :/


दिलचस्प विचार है, लेकिन मैं इसे "वास्तविक" कोड के लिए उपयोग नहीं करूंगा।
जिमी टी।

1
"असली", आपका क्या मतलब है? :/
स्टेफेन

1
@ स्टेफ़ेन एक देर से टिप्पणी, लेकिन इस स्थिति में एक स्विच का उपयोग कम से कम विस्मय के सिद्धांत के खिलाफ जाता है। एक स्विच स्टेटमेंट से डेटा के चयन को नियंत्रित करने की उम्मीद की जाती है, न कि प्रोग्राम फ्लो को नियंत्रित करने के लिए।
FWDekker

« स्विच विभिन्न मूल्यों के खिलाफ एक अभिव्यक्ति की तुलना करता है और कोड के एक विशिष्ट ब्लॉक को निष्पादित करता है जिसके आधार पर अभिव्यक्ति» के बराबर होती है। » तब प्रत्येक ब्लॉक सहायक अभिव्यक्तियों का मूल्यांकन कर सकता है जो बदले में निष्पादन के प्रवाह को वापस करने या कुछ निर्देशों को छोड़ने का निर्देश दे सकता है ... मुझे नहीं लगता कि स्विच इस बहुत ही संकुचित usecase में कम से कम विस्मयकारी सिद्धांत के खिलाफ जाएगा, लेकिन, इसने कहा, मूल संदर्भ और आवश्यकताओं को वास्तव में कुछ रिफैक्टिंग की आवश्यकता हो सकती है।
स्टेफेन

4
$a = 1;

switch($a) {

  case "1":

    if  ($condition1){
      break;
    }

    if  ($condition2){
      break;
    }

    if  ($condition3){
      break;
    }
}

इस तरह मुझे जो चाहिए वो मुझे मिला। मैं एक स्विच का उपयोग करता हूं केवल एक निश्चित मामला है और यदि स्थिति को चुनने के लिए मामले में ब्रेक का उपयोग करें। इस कारण से कि मैं ब्रेक का उपयोग करता हूं: condition1 और condition2 दोनों संतुष्ट हो सकते हैं, उस स्थिति में केवल condition1 लागू होता है। ऑर्डर के अनुसार .IF चयनात्मक होता है।


8
इसके लिए आपको वेरिएबल की जरूरत नहीं है। बस उपयोग करेंswitch(true) { case true:
मैक्सिम क्रिज़ानोवस्की

1

नहीं।

लेकिन कैसे के बारे में:

$a="test";
if("test"==$a)
{
  if ($someOtherCondition)
  {
    echo "yes";
  }
}
echo "finish";

3
धन्यवाद, लेकिन, मैं बहुत सारे ifबयानों से बचने के लिए इसके लिए एक सरल संस्करण की तलाश कर रहा हूं
मुहम्मद उस्मान

2
@Usman: यदि आपके पास कई शर्तें हैं, तो आपको उन्हें जांचने की आवश्यकता है। परंपरागत रूप से एक शर्त की जाँच में एक ifबयान शामिल है । मुझे यकीन नहीं है कि आप इससे कैसे बचें।
ओलिवर चार्ल्सवर्थ

1

बस उस कोड को स्थानांतरित करें जिसे else/elseifशाखा में निष्पादित नहीं किया जाना है । मैं वास्तव में यह नहीं देखता कि आप वह क्यों करना चाहते हैं जो आप करने की कोशिश कर रहे हैं।


1

सरल उत्तर यह है कि नहीं, ifनिष्पादन को पूरी तरह से रोककर (बिना) एक बयान से तोड़ने का कोई तरीका नहीं है exit। अन्य समाधान मेरे लिए काम नहीं करेंगे क्योंकि मैं ifबयान की संरचना को बदल नहीं सकता , क्योंकि मैं कोड को एक प्लगइन में इंजेक्ट कर रहा हूं, जैसे:

if ( condition ) {
  // Code and variables I want to use

  // Code I have control over

  // Code I don't want to run
}
// More code I want to use

0

अपने प्रश्न का उत्तर देते हुए कि क्या यह प्राप्त करने योग्य है या नहीं, तो हाँ जो php के "गोटो" ऑपरेटर का उपयोग करके प्राप्त करने योग्य है।

लेकिन नैतिक रूप से, इसके "गोटो" का उपयोग करने के लिए एक अच्छा अभ्यास नहीं है और गोटो का उपयोग करने की कोई आवश्यकता है तो इसका मतलब है कि कोड को फिर से संगठित करने की आवश्यकता है ताकि गोटो की आवश्यकता को हटाया जा सके।

आपके द्वारा ऊपर पोस्ट किए गए नमूना कोड के अनुसार, यह स्पष्ट रूप से देखा जा सकता है कि कोड को फिर से संगठित किया जा सकता है और जिस कोड की आवश्यकता नहीं है उसे या तो हटा दिया जा सकता है या टिप्पणी की जा सकती है (यदि भविष्य में उपयोग के लिए संभावना है)।


0
$arr=array('test','go for it');
$a='test';
foreach($arr as $val){
  $output = 'test';
  if($val === $a) $output = "";
  echo $output;
}
echo "finish";

अपने बयानों को मिलाकर, मुझे लगता है कि यह आपको आपकी इच्छा का परिणाम देगा। साफ और सरल, बहुत अधिक बयान के बिना।

बदसूरत और अच्छे दिखने वाले कोड के लिए, मेरा पुनर्मिलन होगा:

function myfunction(){
  if( !process_x() || !process_y() || !process_z()) {
    clean_all_processes();  
    return; 
  }
/*do all the stuff you need to do*/
}

अपने सामान्य कोड में कहीं

myfunction();

0

मुझे लगता है कि आप इसके लिए देख रहे हैं:

if (condition) { 
    if ( oneothercondition ) continue;  
    if ( yetothercondition ) continue; 

    // go ahead , all is fine
}

Php मैनुअल forउदाहरण दिखाता है , लेकिन मुझे लगता है कि यह भी काम करता हैif


-1

मेरे पास बहुत सारे बदलावों के बिना एक सरल समाधान है। प्रारंभिक बयान है

मैं ऊपर दिए गए बयान को तोड़ना चाहता हूं और गूंज "हां" को रोकना चाहता हूं; या ऐसे कोड जिन्हें अब निष्पादित करने की आवश्यकता नहीं है, अतिरिक्त स्थिति हो सकती है या नहीं भी हो सकती है, क्या ऐसा करने का कोई तरीका है?

इसलिए, यह सरल लगता है। इस तरह कोड की कोशिश करो।

$a="test";
if("test"==$a)
{
  if (1==0){
      echo "yes"; // this line while never be executed. 
      // and can be reexecuted simply by changing if (1==0) to if (1==1) 
  }
}
echo "finish";

यदि आप इस कोड के बिना प्रयास करना चाहते हैं, तो यह सरल है। और आप जब चाहें वापस आ सकते हैं। एक अन्य समाधान टिप्पणी ब्लॉक है। या बस एक और अलग कोड में सोच रहे हैं और कोशिश करते हैं और केवल अपने अंतिम कोड में परिणाम पेस्ट करते हैं। और यदि आपके मामले में कोई कोड अब और नहीं है, तो परिणाम हो सकता है

$a="test";
echo "finish";

इस कोड के साथ, मूल कथन पूरी तरह से सम्मानित है .. :) और अधिक पठनीय!


-2

सरल उपाय यह है कि इस पर टिप्पणी करें।

$a="test";
if("test"==$a)
{

  //echo "yes"; //no longer needed - 7/7/2014 - updateded bla bla to do foo
}

अतिरिक्त लाभ यह है कि आप अपना मूल कोड नहीं बदल रहे हैं और आप इसे तारीख कर सकते हैं, इसे शुरू कर सकते हैं और एक कारण बता सकते हैं।

क्यों नीचे वोट, ओपी अनुरोध के अनुसार मुझे लगता है कि यह एक पूरी तरह से वैध समाधान है।

"मैं ऊपर दिए गए कथन को तोड़ना चाहता हूँ और" प्रतिध्वनि "हाँ" को रोकना चाहता हूँ, या ऐसे कोड जिन्हें अब निष्पादित करने की आवश्यकता नहीं है, एक अतिरिक्त शर्त हो सकती है या नहीं भी हो सकती है, क्या ऐसा करने का कोई तरीका है? "

वास्तव में कोई व्यक्ति कुछ अन्य समाधानों को देख सकता है, एक साल बाद और आश्चर्य होगा कि वहां क्या चल रहा है। मेरे सुझाव के अनुसार, कोई भी भविष्य के संदर्भ के लिए अच्छा प्रलेखन छोड़ सकता है, जो हमेशा अच्छा अभ्यास होता है।


2
इससे समस्या का समाधान नहीं होता है। ब्रेक एक में भी हो सकता है।
जिमी टी।

यदि आप एक बयान में टिप्पणी नहीं कर सकते? या एक टिप्पणी करें? क्या आपको लगता है कि निष्पादन को बाहर करने के लिए उपयोग करें? यदि ऐसा है तो फिर विराम की बात नहीं है, क्या है यदि बयान के लिए हैं? बस यह भी टिप्पणी करें। क्षमा करें, लेकिन अपनी बात न देखें।
ArtisticPhoenix

कुछ इस तरह: a: if ("test" == $ a) {... if (...) a; ...}
जिमी टी।

-3

टर्नरी ऑपरेटर के उपयोग के बारे में क्या?

<?php
 // Example usage for: Ternary Operator
 $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
?>

जो इस के समान है अगर / अन्यथा कथन:

<?php
 if (empty($_POST['action'])) {
   $action = 'default';
 } else {
   $action = $_POST['action'];
 }
?>

PHP7 में:$a = $_POST['action'] ?? 'default';
टोबियास

-3

बाकी स्क्रिप्ट को पूरी तरह से चलाने से रोकने के लिए आप बस कर सकते हैं

बाहर जाएं; // विराम के स्थान पर। बाकी कोड निष्पादित नहीं होगा


-4

मुझे पार्टी में देर हो गई है लेकिन मैं योगदान देना चाहता था। मुझे आश्चर्य है कि किसी ने सुझाव नहीं दिया exit()। यह परीक्षण के लिए अच्छा है। मैं इसे हर समय उपयोग करता हूं और आकर्षण की तरह काम करता हूं।

$a ='';
$b ='';
if($a == $b){
echo 'Clark Kent is Superman';
exit();
echo 'Clark Kent was never Superman';
}

कोड exit()नहीं चलने पर सब कुछ बंद हो जाएगा।

परिणाम

Clark Kent is Superman

यह foreach()और while()साथ ही साथ काम करता है । यह कहीं भी काम करता है आप इसे वास्तव में जगह देते हैं।

foreach($arr as $val)
{
  exit();
  echo "test";
}

echo "finish";

परिणाम

nothing gets printed here.

ए के साथ इसका उपयोग करें forloop()

for ($x = 2; $x < 12; $x++) {
    echo "Gru has $x minions <br>";
    if($x == 4){
    exit();
    }
}

परिणाम

Gru has 2 minions
Gru has 3 minions
Gru has 4 minions

एक सामान्य स्थिति में

$a ='Make hot chocolate great again!';
echo $a;
exit();
$b = 'I eat chocolate and make Charlie at the Factory pay for it.';

परिणाम

Make hot chocolate great again!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.