2011-02-17 11 views
22

मैं एक php सरणी है $numbers = array(1,2,3,4,5,6,7,8,9)छोड़ वर्तमान यात्रा

अगर मैं इस पर पाशन कर रहा हूँ एक foreach foreach($numbers as $number)

का उपयोग कर और एक अगर बयान if($number == 4)

क्या कोड की पंक्ति के बाद हो सकता है कि उस लाइन के बाद कुछ भी छोड़ देंगे और 5 पर लूप शुरू करेंगे? तोड़ो, वापसी, बाहर निकलें?

उत्तर

51

आप continue कथन की तलाश में हैं। break भी उपयोगी है जो पूरी तरह से लूप से बाहर निकल जाएगा। दोनों कथन लूप के सभी बदलावों के साथ काम करते हैं, यानी। for, foreach और while

$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
foreach($numbers as $number) { 
    if ($number == 4) { continue; } 
    // ... snip 
} 
+0

आह, जारी रखने के लिए धन्यवाद, मैं अपने सभी ऊपर उल्लेख विकल्पों की कोशिश की थी। Asap – Hailwood

+0

स्वीकार करेगा क्या 'जारी रखें' खराब कोडिंग अभ्यास नहीं माना जाता है? 'Goto' के समान कारणों से ... –

+0

वास्तव में नहीं। कूदता बुरा नहीं है। 'गोटो' को उन भाषाओं में लागू किया गया है, जो वास्तव में आपको एप्लिकेशन में कहीं भी सचमुच कूदने देते थे, यही बुरा था। फ़ंक्शन कॉल, सशर्त बयान, कुछ भी जो शाखाकरण शुरू करता है, वे सभी कूदते हैं और यह ठीक है। 'जारी रखें' में एक अच्छी तरह से परिभाषित उपयोग केस है। यह ठीक है। यदि कुछ भी 'ब्रेक' खराब है। –

7
continue; 

यह बताना वर्तमान यात्रा ब्लॉक को छोड़ने के लिए होगा, लेकिन पाश के बाकी के साथ जारी जारी रखें। सभी scenerios में काम करता है (के लिए, जबकि, आदि)

+0

* "वर्तमान पुनरावृत्ति ब्लॉक को छोड़ें, लेकिन बाकी लूप के साथ जारी रखें" * धन्यवाद, इसे व्यक्त करने का एक बहुत स्पष्ट तरीका। – Alvaro

0

तोड़ एक नज़र; लूप को रोक देगा और लूप के बाहर कंपाइलर बना देगा। जारी रखते हुए; केवल एक को छोड़ देगा और अगले चक्र पर जाएगा। की तरह:

$i = 0; 
while ($i++) 
{ 
    if ($i == 3) 
    { 
     continue; 
    } 
    if ($i == 5) 
    { 
     break; 
    } 
    echo $i . "\n"; 
} 

आउटपुट:

1 
2 
4 
6 
संबंधित मुद्दे