PHP Looping Statements: ये तीसरे प्रकार के Control Statements होते हैं। जब प्रोग्राम में हमें किसी प्रक्रिया को बार-बार दोहराना होता है, तब हम Looping Control Statements का प्रयोग करते हैं। किसी भी Loop में हमेंशा तीन बातें निश्चित करनी होती हैं-
- इसे Loop का Initial Part कहा जाता है। इसमें Loop को Iterate करने वाले Variable को प्रारंभिक मान दिया जाता है, जो ये तय करता है कि Loop की शुरूआत कब से होगी। यहां हमेंशा Assignment Operator = का प्रयोग किया जाता है।
- इसे Test Condition कहा जाता है। किसी भी Loop में यह Part ये तय करता है कि Loop किस Condition में Execute होगा या कब तक Execute होगा। जब तक Test Condition सत्य होती है, तभी तक Loop का Iteration चलता है। इसलिये Loop के इस भाग को Define करना बहुत ही जरूरी होता है। यही भाग किसी Loop को बताता है कि Loop को कहां तक चलना है। इस भाग में Conditional व Logical Operators का प्रयोग किया जाता है। यहां एक Valid Condition देना बहुत ही जरूरी होता है, क्योंकि यदि यहां पर एक Valid Condition Define नहीं करते हैं, तो कई बार Loop Infinite हो जाता है।
- Loop के इस में Step Size बताना होता है। यानी यहां Loop को ये बताना होता है कि Loop किस क्रम में आगे बढेगा, घटते क्रम में या बढते क्रम में। यहां हमेंशा Increment या Decrement Operator का प्रयोग किया जाता है। यदि हमें Loop को एक के क्रम में ना बढा कर किसी और क्रम में बढाना या घटाना होता है, तो यह काम Assignment Operators का प्रयोग करके किया जाता है। जैसे b = b + 2 यह Expression Loop को दो-दो के क्रम में Increase करेगा। इसके स्थान पर हम इस Expression का संक्षिप्त रूप b += 2 का प्रयोग भी कर सकते हैं, जैसा कि पिछले Section में बताया गया है।
for Loop
यह सर्वाधिक प्रयोग होने वाला Loop है। इस Loop में for Keyword का प्रयोग होता है। इस Loop में ऊपर बताए गए तीनों ही भाग एक ही कोष्टठक में लिखने होते हैं। इस Loop की विशेषता यह है, कि इसके जितने भी Statements होते हैं, उन्हे for Loop लिखने के बाद उसके नीचे Curly Braces के एक Block में लिखा जाता है और ये Statement Block तभी Execute होता है, जब for Condition सत्य होती है। for Loop का Syntax निम्नानुसार होता है-
for( Initial Part; Conditional Part; Step Size Part)
{
Statements Block;
}
Flow of For Loop
- जब for Loop का Execution होता है, तो सर्व प्रथम Loop का Variable Initialize होता है और फिर Condition Check होती है। यदि Condition सत्य होती है, तो Program Control for Loop के Statement Block में जाता है और वहां के Statements का Execution करता है।
- जब For Loop Statement Block के सभी Statements का Execution कर देता है, तो Block से बाहर आने से पहले Loop के Step Size Part का Execution करता है और बताई गई Size के अनुसार Variable का मान Increment या Decrement करता है।
- फिर वापस Condition Check करता है। यदि Condition सत्य होती है तो वापस Statement Block में जाता है और सभी Statements का Execution करने के बाद वापस Step Size Part का Execution करता है।
- ये क्रम तब तक चलता रहता है जब तक कि for Loop की Condition सत्य रहती है। Loop का Initialization केवल एक बार ही होता है, जब पहली बार Program Control for Loop में प्रवेश करता है। for Loop का Execution हमेंशा इसी क्रम में होता है।
इस Loop द्वारा हम एक प्रोग्राम बनाते हैं, जिसमें 1 से 10 तक की गिनती को Output में निम्नानुसार Print करवाना हैं।
1
2
3
4
5
6
7
8
9
10
इस प्रोग्राम को हम पहले गणितीय रूप में लिखते हैं। हम $i नाम का एक Variable लेते हैं और चूंकि इस प्रोग्राम में गिनती का प्रारंभिक मान 1 से हो रहा है। इसलिए अतः $i का प्रारंभिक मान $i = 1 कर सकते हैं। यह इस प्रोग्राम के Initial Part का Declaration है।
Print होने वाली गिनती का अधिकतम मान 10 है, इसलिये Condition के रूप में हम ये कह सकते हैं कि Loop तब तक चलना चाहिये जब तक कि $i का मान 10 नहीं हो जाता। इसलिये हम इसे गणितीय रूप में $i <= 7 लिख सकते हैं। यह Expression प्रोग्राम को बताता है कि Condition तब तक सत्य रहेगी, जब तक कि Variable $i का मान 10 से कम या 10 के बराबर नहीं हो जाता। यह इस प्रोग्राम के Conditional Part का Declaration है।
इस प्रोग्राम में हर पहली संख्या हर दूसरी संख्या से बडी है। इसलिये Loop के Step Size Part में हमें Increment Operator का प्रयोग करना होगा और साथ ही हर संख्या एक के क्रम में बढ रही है, इसलिये हमें Variable के मान को हर Iteration में एक के क्रम में बढाना होगा। इसे गणितीय रूप में $i = $i +1 या $i++ भी लिख सकते हैं। यह इस प्रोग्राम के Step Size Part का Declaration है। इस प्रकार से हमें for Loop के तीनों भाग प्राप्त हो गए हैं जो निम्नानुसार हैं-
$i = 1
$i <= 7
$i ++ or $i = $i + 1
इन तीनों को for Loop में रख देते हैं तो निम्न प्रकार से for Loop का कोष्टठक बन जाता है। ध्यान दें कि ये तीनों Expression अलग-अलग हैं। इसलिये इन्हे ; ( Semicolon ) से अलग करके लिखा गया है-
for($i = 1; $i <= 10; $i = i + 1) OR
for($i = 1; $i <= 10; $i++)
अब for Loop का Statement Block लिखना है। $i का मान क्रम से एक-एक बढ रहा है, इसलिये Statement Block में यदि $i का मान Print कर दिया जाए, तो हमें हमारा Output प्राप्त हो जाएगा। इसे हम निम्नानुसार लिख सकते हैं-
ECHO $i . “\n”;
अब यदि हम इन सभी Statement को एक PHP Script में निम्नानुसार लिख कर Program को Interpret करें, तो हमें हमारा Required परिणाम प्राप्त हो जाएगा। Example Program निम्नानुसार है-
<?php for($i = 1; $i <= 10; $i++){ ECHO $i . "\n"; } ?>
हम चाहें, तो जो Variable हमने for Loop के अन्दर Declare किया है, उसे for Loop से पहले या Script की शुरूआत में भी Declare कर सकते हैं। इसलिए यदि हम चाहें तो for Loop के Statements को निम्नानुसार भी लिख सकते हैं-
<?php for($i = 1; $i <= 10; $i++){ ECHO $i . "\n"; } ?>
Nesting of Loop
जिस तरह हमने if Conditional Statement की Nesting की थी उसी तरह से हम Loops की भी Nesting कर सकते हैं। यानी कई बार प्रोग्राम में ऐसी जरूरतें होती हैं, कि उस खास काम को Loop की साधारण प्रक्रिया द्वारा पूरा नहीं कर सकते। तब हमें एक Loop के अंदर एक अन्य Loop को Use करना पडता है। जब किसी Loop में वापस किसी दूसरे Loop का प्रयोग किया जाता है, तो इसे Loop की Nesting करना कहते हैं।
For Loop की जब Nesting की जाती है, तब हमेंशा Outer Loop, Inner Loop को Control करता है। Outer Loop Row के लिये व Inner Loop Column के लिये लिखा जाता है। इसका Syntax निम्नानुसार होता है-

Nested Loops की कार्यप्रणाली को समझने के लिए हम एक Program बनाते हैं, जो कि निम्न Format को Output में Print करता हैः
*
* *
* * *
* * * *
* * * * *
इस प्रोग्राम में दो for Loop चलाए गए हैं और Condition इस प्रकार की रखी गई है कि Inner Loop उतनी ही बार चले जितना बाहर का Loop चलाने वाले Variable का मान हो। प्रोग्राम निम्नानसार है-
<?php for($i=1; $i<=5; $i++){ for($j=1; $j<=$i; $j++){ ECHO " *"; } ECHO "\n"; } ?>
while Loop
for Loop की तरह यह Statement भी किसी Statement के दोहरान का काम करता है, लेकिन फिर भी यह for Loop से काफी अलग है। इस Loop में PHP के while Keyword का प्रयोग किया जाता है।
while Loop के while Parenthesis में केवल Condition दी जाती है। Variable का Initialization मान व Step Size, while के कोष्टठक का हिस्सा नहीं होते हैं, बल्कि Variable का प्रारंभिक मान while Loop को शुरू करने से पहले ही Initialize कर दिया जाता है जबकि Loop की Step Size, while Loop के Statement Block का हिस्सा होता है। while Loop का syntax निम्नानुसार होता है-
Variable Initialization;
while(Condition)
{
Statement Block;
Step Size;
}
Statement 1;
while Statement के कोष्टठक के बाद कभी भी ; (Semi Colon) का प्रयोग नहीं किया जाता है।
जब while के बाद केवल एक ही Statement का Execution करना होता है, तब हमें मंझले कोष्टठक का प्रयोग करने की जरूरत नहीं रहती है। फिर भी यदि मंझले कोष्टठक का प्रयोग कर लिया जाए तो कोई फर्क नहीं पडता है।
Control Flow in while Loop
- सर्वप्रथम हमें Loop चलाने वाले Variable को प्रारंभिक मान देना होता है। यह काम while Loop के बाहर ही कर लिया जाता है।
- जब Program Control, while Loop में प्रवेश करता है तो Program Control, Condition Check करता है। यदि Condition सत्य होती है तो Program Control while Loop के Statement Block में प्रवेश करता है और Statement Block का Execution करता है।
- Execution के बाद Step Size Statement Variable की Size तय करता है, यानी Loop के Variable का मान जरूरत के अनुसार Increment या Decrement करता है। यह क्रम तब तक चलता रहता है, जब तक कि while Condition असत्य नहीं हो जाती है।
- यदि Condition सत्य नहीं होती है तो Program Control while Loop के Statement Block में प्रवेश नहीं करता, बल्कि सीधे ही Statement 1 पर चला जाता है।
चलिए, एक उदाहरण द्वारा while Loop को समझने की कोशिश करते हैं। मानलो कि हम एक ऐसा PHP Program बनाना चाहते हैं, जो 1 से 100 के बीच की हर वह संख्या Print करे, जिसमें 2 व 3 का पूरा-पूरा भाग जाता हो।
चूंकि किसी भी Loop को चलाने के लिये Loop की आवश्यक तीनों बातें यानी Loop का प्रारंभ कहां से होगा, Loop का अंत कहां होना है और Loop को किस क्रम में Increase या Decrease होगा, पता होनी चाहिए।
किसी भी Loop में किसी Variable द्वारा ये तीनों बातें तय की जाती हैं। इस प्रोग्राम में भी एक Variable $x लिया गया है, ताकि ये तीनों मान प्राप्त किये जा सकें।
इस प्रोग्राम में हमें 1 से 100 के बीच की संख्याओं पर प्रक्रिया करनी है, इसलिये Loop के Variable का प्रारंभिक मान 1 व अंतिम मान 100 Define किया गया है और Step Size को एक के क्रम में ही बढाया गया है ताकि ये पता लग सके कि कौनसा अंक ऐसा है, जिसमें 2 व 3 का भाग पूरा-पूरा जाता है।
इस प्रोग्राम में हमें ये पता करना है कि किस संख्या में 2 व 3 का भाग पूरा-पूरा जाता है। यह काम हम if Condition Statement द्वारा ही कर सकते हैं। क्योंकि हर Iteration के बाद Loop चलाने वाले Variable का मान बढ जाया करेगा, इसलिये हर अंक में 2 व 3 का भाग देना होगा और यदि संख्या में 2 व 3 का भाग पूरा-पूरा चला जाता है, तो द्रोषफल शून्य प्राप्त होगा।
फलस्वरूप जिस संख्या में 2 व 3 का भाग पूरा-पूरा चला जाएगा और द्रोषफल 0 Return होगा, वह संख्या Output में Print हो जाएगी। जो संख्याऐं If Condition को संतुष्ट नहीं करेंगी। यानी जिस संख्या में 2 का भाग तो पूरा-पूरा चला जाए, लेकिन 3 का भाग ना जाए या फिर जिस संख्या मे 3 का भाग पूरा-पूरा चला जाए लेकिन 2 का ना जाए, तो Condition असत्य हो जाएगी और वह संख्या Output में Print नहीं होगी।
if Condition के रूप में हमें ये शर्त देनी होगी कि Output में वही संख्या Print हो, जिसमें 2 व 3 का पूरा-पूरा भाग जाता है।
इस शर्त को यदि हम ध्यान से समझें तो ये कह सकते हैं कि इस एक शर्त में दो शर्त है। पहली ये कि किसी संख्या में 2 का भाग पूरा-पूरा जाना चाहिये और दूसरी ये कि उसी संख्या में 3 का भाग भी पूरा-पूरा जाना चाहिये, तभी वह Condition पूर्ण रूप से सत्य होगी।
इस शर्त को यदि हम दूसरे शब्दों में कहें तो कह सकते हैं कि किसी संख्या में यदि 2 का भाग देने पर द्रोष फल शून्य प्राप्त होता है, तो Condition सत्य होती है। यानी :
$x % 2 = = 0
साथ ही उसी संख्या में 3 का भाग भी पूरा-पूरा जाना चाहिये यानी उसी संख्या में 3 का भाग देने पर भी द्रोषफल शून्य आना चाहिये।
$x % 3 = = 0
इस प्रकार से दोनों Conditions सत्य होने पर ही Statement Block का Execution होना चाहिये। अतः इन दोनो Condition को Logical Operator AND ( && ) द्वारा जोड कर if कोष्टठक में लिखना होगा क्योंकि जब दो या दो से ज्यादा Conditions के True होने की स्थिति में ही किसी Statement को Execute करना हो, तो हमें Logical AND Operator का प्रयोग करना होता है।
इस प्रकार से इस Loop की वास्तविक Condition (x%2 = = 0 && x%3 = = 0) होगी। इस प्रकार हमें इस प्रोग्राम की सभी आधारभूत चीजें प्राप्त हो जाती हैं जो निम्नानुसार हैं-
- Loop के Variable का प्रारंभिक मान, जिससे Loop का Iteration शुरू होगा यानी 1
- Loop के Variable का अंतिम मान, जिसके बाद Loop का Iteration रूक जाएगा, यानी 100
- Loop के Variable की Step Size जिस क्रम में Loop के Variable का increment होगा।
एक if Condition, जिसमें ये Check होगा कि 1 से 100 के बीच कौनसी संख्याएं हैं जिनमें 2 व 3 दोनों का भाग पूरा-पूरा जाता है।
इस Discussion के आधार पर हम निम्नानुसार while Loop का प्रयोग करके इस समस्या को हल कर सकते हैं-
<?php $x = 1; while($x<=100){ if($x%2 == 0 && $x%3 == 0){ ECHO "\t" . $x; } $x++; } ?> Output: 6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96
सामान्यतया इस Loop का प्रयोग हम तब करते हैं, जब हमें ये पता नहीं होता है कि Loop के Statement Block को कितनी बार Execute करना है। जबकि for Loop का प्रयोग हम तब करते हैं, जब हमें पता होता है किसी for Loop के Statement Block का Execution कितनी बार करना है।
do … while Loop
यह PHP में प्रयोग होने वाला तीसरा प्रकार का Loop है। इसमें भी अन्य Loop की तरह ही तीनों आधारभूत Statements की जरूरत होती है। यानी Loop के Variable का प्रारंभिक मान, अंतिम मान व Step Size.
इस Loop की विशेषता ये है कि इस में Check होने वाली Condition Loop के अंत में Check होती है। यानी जब हमें ऐसी जरूरत हो कि प्रोग्राम में Loop के Statement या Statement Block का Execution कम से कम एक बार तो करना ही हो, तब हम इस Loop का प्रयोग करते हैं। इस Loop का Syntax निम्नानुसार है-
Variable Initialization;
do
{
Statement Block;
Step Size;
}while(Condition );
Statement 1;
इस Loop की शुरूआत do keyword से होती है और Statement Block के बाद Curly Braces बंद करने के बाद while Condition दी जाती है। साथ ही यही एक Loop है, जिसमें while के Condition कोष्टठक के बाद ; (Semi Colon ) का प्रयोग किया जाता है। do के बाद कोई भी Colon या Semicolon प्रयोग नहीं किया जाता है।
इस Loop में प्रोग्राम Control को जैसे ही do Keyword मिलता है, तो Program Control सीधे ही do के Statement Block में चला जाता है और उसमें लिखे Statements को Execute कर देता है। फिर Loop चलाने वाले Variable का Step Size Increase या Decrease प्रोग्राम के अनुसार करता है।
Program Control जब इस Block से बाहर आता है तब उसे while Condition प्राप्त होती है। यहां यदि Condition सत्य होती है तो Program Control do से वापस Statements का Execution करता है और यदि Condition असत्य होती है, तो Program Control Loop को वापस Iterate नहीं करता बल्कि सीधे ही Statement 1 पर चला जाता है।
for Loop को हम while Loop की तरह भी Use कर सकते हैं। यदि हम पिछले Program को for Loop से ही हल करना चाहें और साथ ही ये भी चाहें कि for Loop को while Loop की तरह ही Use करें, तो हम ये काम करने के लिए for Loop को निम्नानुसार Use करते हुए उपरोक्त Program लिख सकते हैं-
<?php $x = 1; while($x<=100){ if($x%2 == 0 && $x%3 == 0){ ECHO "\t" . $x; } $x++; } ?>
हम विभिन्न प्रकार के Loops की भी उसी प्रकार से Nesting कर सकते हैं, जिस तरह से for Loop की कर सकते हैं।
यानी हम किसी समस्या के समाधान के लिए किसी भी Loop का प्रयोग कर सकते हैं। ये हमारी सुविधा पर निर्भर करता है कि हम किस Loop का प्रयोग करते हैं। विभिन्न Loops को एक दूसरे के स्थान पर Use किया जा सकता है और हम किसी भी काम को तीनों ही Loops द्वारा समान प्रकार से सम्पन्न कर सकते हैं।
foreach Loop
ये एक Special Type का Loop है जिसका प्रयोग किसी Array के विभिन्न Elements अथवा किसी Object की विभिन्न Properties को क्रम से Access करने के लिए किया जाता है। इस Loop का Syntax निम्नानुसार होता हैः
foreach($array as $variable) {
//Statements;
}
OR
foreach($array as $key => $value) {
//Statements;
}
चूंकि जब तक हम Array या Object को ठीक तरह से नहीं समझ लेते, हम इस Loop को Use नहीं कर सकते, क्योंकि ये Loop केवल Array या Object पर ही काम करता है। इसलिए हम इस Loop को तब Use करेंगे, जब हम Array व Objects के बारे में जानेंगे।
यहां हमने if, if….else, elseif, switch, for, while व do…while Control Flow Statements के बारे में जाना। PHP हमें if, switch, for, while व foreach Control Statements को अलग तरीके से Specify करने की सुविधा देता है।
इस तरीके के अन्तर्गत हम इन Statements के Opening Curly Braces को Colon ( : ) से तथा Closing Curly Braces को endif;, endfor;, endswitch;, endwhile; या endforeach; Statement Replace कर सकते हैं। यानी हम इन Statements को निम्न Syntax के अनुसार भी Use कर सकते हैं:
if Statement if(condition) : //Statements; endif; if…else Statement if(condition) : //Statements; else: //Statements; endif; elseif Statement if(condition) : //Statements; elseif: //Statements; elseif: //Statements;
… … else: //Statements; endif; switch Statement switch(expression) : //Statements; endswitch; for Statement for(initialization; condition; steps ) : //Statements; endfor; //while Statement initialization; while(condition) : //Statements; Steps endwhile; //foreach Statement foreach($array as $variable) : //Statements; endforeach; OR foreach($array as $key => $value) : //Statements; endforeach;
जब हम इस प्रकार का Syntax Use करते हैं, तब हम Curly Braces व Colon की आपस में Mixing नहीं कर सकते।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF