2011-09-02 9 views
13

क्या मुझे यहां ब्रेक का उपयोग करने की आवश्यकता है या क्या यह लूपिंग बंद कर देगा और बस एक बार वापस आ जाएगा?PHP - वापसी के बाद तोड़ें?

for($i = 0; $i < 5; $i ++) { 
    if($var[$i] === '') return false; 
    // break; 
} 

धन्यवाद!

उत्तर

12

यह केवल एक बार चलाएगा, लूपिंग रोक देगा, और फ़ंक्शन/विधि से बाहर निकलें।

यह तर्क दिया जा सकता है कि यह खराब शैली है। बाद में return को अनदेखा करना बहुत आसान है, जो डिबगिंग और रखरखाव के लिए खराब है।

break का उपयोग क्लीनर हो सकता है:

for($i = 0; $i < 5; $i ++) { 
    if($var[$i] === '') 
    { set_some_condition; 
     break; 
    } 
} 

if (some_condition) 
return; 
7

आप return उपयोग करते हैं, अपने कार्य (या पूरी स्क्रिप्ट) वापस आ जाएगी - सभी कोड के बाद कि निष्पादित नहीं किया जाएगा। तो अपने प्रश्न का उत्तर देने के लिए: break यहां आवश्यक नहीं है। हालांकि, अगर break पर टिप्पणी नहीं की गई थी, तो लूप एक पुनरावृत्ति के बाद बंद हो गया होगा। ऐसा इसलिए है क्योंकि आपका अगर कथन ब्रेसिज़ ({ ... }) का उपयोग नहीं करता है, इसलिए इसमें केवल return कथन शामिल है (दूसरे शब्दों में: break आपके उदाहरण में हमेशा निष्पादित किया जाता है)।

2

अद्यतन:

पीएचपी 7 एक return की आवश्यकता है। break; की आवश्यकता नहीं है क्योंकि लूप return पर समाप्त होता है।

break; आमतौर पर स्विच या लूप में उपयोग किया जाता है जब भी आपको अपनी आवश्यक वस्तु मिलती है।

उदाहरण:

$items = ['a' , 'b' , 'c']; 

foreach($items as $item) 
{ 
    if($item == 'a') 
    { 
     return true; // the foreach will stop once 'a' is found and returns true. 
    } 

    return false; // if 'a' is not found, the foreach will return false. 
} 
+0

'return' काम करता है। सरल उदाहरण: '$ आइटम = ['ए', 'बी', 'सी']; foreach ($ आइटम के रूप में $ आइटम) { $ echo echo; अगर ($ item == 'a') सत्य वापस लौटें; } ' – EGurelli

+1

धन्यवाद @EGurelli। मैंने आपका उदाहरण जोड़ा और संपादित किया है। –