PHP पाठ - पाठ 12 - लूप्स while, foreach, for
प्रोग्रामिंग में, और रोजमर्रा की जिंदगी में भी, अक्सर हमें दोहराई जाने वाली क्रियाएँ करनी पड़ती हैं जब तक हम संतुष्ट न हों। रोजमर्रा की भाषा में हम इसे कष्ट कहते हैं, प्रोग्रामिंग में इसे लूप्स (loops) कहते हैं। PHP में लूप्स बहुत आम हैं, क्योंकि यह सरणियों के माध्यम से पुनरावृत्ति करने, कार्यों की गणना करने का एक सुविधाजनक तरीका है, और लूप्स के साथ बहुत कुछ किया जा सकता है। आइए सबसे सरल और सबसे लोकप्रिय while से शुरू करें।
PHP while लूप्स
while बहुत सरल है, कोष्ठक में हम शर्त लिखते हैं, और जब शर्त पूरी होती है तो कर्लिंग ब्रेस में हम वह लिखते हैं जो करना है। शर्त एक तार्किक अभिव्यक्ति है जिसकी दो अवस्थाएँ हैं - TRUE या FALSE। यदि आप तार्किक अभिव्यक्तियों के बारे में फिर से समझना चाहते हैं, तो आपको if ऑपरेटर के बारे में पाठ पढ़ना चाहिए। अब while का एक उदाहरण:
<?php
$counter = 5;
$newArray = array();
while($counter > 2){
$newArray[]= $counter;
$counter--;
}
print_r($newArray);
?>
परिणाम में सरणी के तत्व 5,4,3 प्रदर्शित होंगे। आइए देखें कि यह कैसे काम करता है:
1 चरण। $counter = 5 (5 > 2)
2 चरण। $counter = 4 (4 > 2)
3 चरण। $counter = 3 (3 > 2)
4 चरण। $counter = 2 (2 = 2, शर्त का पूरा न होना, इसलिए क्रिया नहीं हुई और सरणी में 2 नहीं है)
आइए y(x) = 2x -1 कार्य के सारणीकरण का एक और उदाहरण देखें:
<?php
// function y(x) = 2x -1;
$x = -10;
while($x <= 10){
$y = 2*$x-1;
print 'y(' . $x . ')=' . $y . '<br />';
$x++;
}
?>
परिणाम में x [-10,10] के लिए कार्य मानों का एक स्तंभ प्रदर्शित होगा।

यह while लूप का एक प्रवाह आरेख है, यह इस लूप के काम करने का सामान्य दृश्य है। हमारे पास एक शर्त है, एक लूप बॉडी है, जब तक शर्त पूरी होती है तब तक हमारा लूप बॉडी काम करता है, और जब यह पूरी नहीं होती तो PHP अगला कोड चलाता है।
एक महत्वपूर्ण बात। यदि आप $x++ पंक्ति को हटा दें, जिससे हमारा काउंटर बदलता है ताकि शर्त पूरी न हो। लेकिन अगर यह हमेशा पूरी हो जाए?
<?php
// function y(x) = 2x -1;
$x = -10;
while($x <= 10){
$y = 2*$x-1;
print 'y(' . $x . ')=' . $y . '<br />';
// $x++;
}
?>
तब यह बहुत ही बुरा होगा। एक गंभीर त्रुटि होगी, हमारा लूप बॉडी लगातार चलता रहेगा। इस स्थिति को अनंत लूप कहा जाता है। ऐसी स्थितियों से बचें, अनंत लूप आपकी साइट को काम न करने का कारण बन सकता है!
PHP foreach लूप्स
एक और आवश्यक लूप, जो अक्सर तब आता है जब आपको सरणी के माध्यम से पुनरावृत्ति करनी होती है। पुनरावृत्ति से मेरा मतलब है कि सरणी का एक तत्व लें, उसके साथ क्रियाएँ करें, फिर अगला तत्व लें, उसके साथ भी वही क्रियाएँ करें, और इसी तरह सभी तत्वों को संसाधित करें।
आइए इसे एक उदाहरण से समझते हैं। मान लीजिए हमारे पास दस तत्व हैं जो "लाल" या "नीले" हैं, आइए लाल तत्वों की गिनती करें:
<?php
$counter = 0;
$newArray =array(
1=>'red',
2=>'blue',
3=>'blue',
4=>'red',
5=>'red',
6=>'blue',
7=>'red',
8=>'blue',
9=>'red',
10=>'blue',
);
foreach($newArray as $key){
if($key == 'red'){
$counter++;
}
}
print 'हमारे पास ' . $counter . ' लाल तत्व हैं';
?>
मुझे लगता है यह सरल उदाहरण समझ में आ गया है। as ऑपरेटर का उपयोग इस मामले में एक-एक करके तत्वों के माध्यम से पुनरावृत्ति के लिए किया जाता है। जब तत्व खत्म हो जाएँ, तो foreach भी खत्म हो जाता है।
लेकिन सभी सरणियाँ इतनी सरल नहीं होती हैं, कभी-कभी सरणी में कई नेस्टेड सरणियाँ होती हैं। और इनमें से प्रत्येक उप-सरणी को भी पुनरावृत्ति के माध्यम से प्रक्रिया किया जा सकता है:
<?php
$counter = 0;
$newArray = array(
1=>array(
1 => 'red',
2 => 'blue',
3 => 'blue',
),
2=>array(
1 => 'red',
2 => 'red',
3 => 'blue',
)
);
foreach($newArray as $key){
foreach($key as $element){
if($element == 'red'){
$counter++;
}
}
}
print 'हमारे पास ' . $counter . ' लाल तत्व हैं';
?>
मुझे लगता है foreach अभी के लिए समझ आ गया है, मुझे लगता है हम अभी के लिए यहीं रुकेंगे - foreach मेरे अन्य उदाहरणों में फिर से आएगा।
FOR लूप
for लूप while लूप के समान है। for का आमतौर पर उपयोग तब किया जाता है जब आप पहले से जानते हैं कि लूप को कितनी बार चलना है। उदाहरण के लिए 10 या 100 बार:
for($i=0;$i<10;$i++){
//दस दोहराव
}
अब आइए देखते हैं कि for लूप किस चीज से बना है।
for(){
}
अन्य लूप्स की तरह, for लूप के सभी पैरामीटर कोष्ठक में लिखे जाते हैं। आमतौर पर तीन पैरामीटर का उपयोग किया जाता है:
1. $i=0 - काउंटर का आरंभीकरण, वह वेरिएबल जहाँ हम वर्तमान दोहराव की संख्या रखेंगे।
2. $i<10 - वह शर्त जिस पर for लूप काम करेगा।
3. $i++ - काउंटर को एक से बढ़ाना, अगले दोहराव पर जाने के लिए।