payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


Different Kinds of Loops   in Category: पीएचपी   by amit

🕙 Posted on 2023-06-05 at 19:52:02


लूप्स (LOOPs)

    लूप्स आपको डेटाबेस से डेटा को व्यवस्थित तरीके से प्राप्त करने का अधिकार/शक्ति देता है, जब आप यह नहीं जानते कि आपको कितने डेटा की आवश्यकता है। उदाहरण के लिए, आप ट्यूटोरियल पेज में उल्लिखित नवीनतम विषय देख सकते हैं। साथ ही, जब आप किसी श्रेणी (Category) पर क्लिक करते हैं, तो उस श्रेणी से संबंधित ट्यूटोरियल उसी पृष्ठ में दिखाए जाते हैं। इस वेबसाइट पर अपलोड किए गए सभी विषयों को आप साइट पेज पर देख सकते हैं। लूप्स आपको अपने डेटा को पृष्ठांकित (paginate) करने में भी मदद करते हैं, जैसा कि आप ट्यूटोरियल पेज में देख सकते हैं।

    आपकी आवश्यकता के अनुसार डेटा-प्रवाह संरचनाओं को विशिष्ट (specific) तरीके से नियंत्रित करने के लिए लूप बहुत सहायक होते हैं। एक LOOP कोड का एक ब्लॉक है जिसे कुछ शर्तों को पूरा करने पर, निश्चित सीमा तक बार-बार (कई बार) निष्पादित किया जाएगा। इसका मतलब है कि एक लूप में, तीन आवश्यकताएं होनी चाहिए: (1) इनिशिय­लाइज़ेशन (Initial­ization), (2) सशर्त अभिव्यक्ति (Conditional expression), और (3) पुनरावृत्ति (Iteration)

आरंभीकरण (Initial­ization)

    इनिशिय­लाइज़ेशन एक वैरिएबल नाम घोषित करता है, उदाहरण के लिए, $num लूप को प्रारंभ (initialize) करने के लिए। $num को असाइन किया गया मान संख्यात्मक (preferably, पूर्णांक) डेटा-प्रकार का होना चाहिए। और लूप को सकारात्मक ('दाएं') दिशा में ले जाने के लिए या तो 0 (शून्य) या 1 हो सकता है, या लूप को नकारात्मक ('बाएं') दिशा में ले जाने के लिए वस्तुओं की कुल संख्या (अर्थात, एक सरणी array का अधिकतम संख्या) होना चाहिए।

दाईं ओर जाना: 0 1 2 3 4 5 6 7 8 9 ...

बाईं ओर जाना: 9 से 0 तक (दाईं की विपरीत दिशा)

कंडीशन Condition

    एक शर्त (condition) यह जांचती है कि चर नाम, $num का मान वस्तुओं की कुल संख्या से < (कम) या <= (कम या बराबर) या > (अधिक) या >= (अधिक या बराबर) है (तुलना ऑपरेटर्स देखें) और जब शर्त true है, {} घुंघराले ब्रेसिज़ के अंदर कोड के ब्लॉक को निष्पादित किया जाएगा।

इटरेशन

    इटरेशन का अर्थ है वे चरण (steps) जिनमें आप लूप को घुमाना (move) चाहते हैं, अर्थात, चर नाम $num के मान को बढ़ाना या घटाना है। यह ध्यान रखना महत्वपूर्ण है कि आपको आरंभीकरण (initial­ization) के लिए स्थिरांक (constant) का उपयोग नहीं करना चाहिए। साथ ही, जब कुछ चीज़ें सरल (पूर्णांक integer डेटा-प्रकार) होती हैं, तो वे बेहतर काम करती हैं। आप दो या दो से अधिक चरणों के साथ एक लूप को बढ़ा या घटा सकते हैं, जैसा कि निम्न­लिखित उदाहरणों में बताया गया है, लेकिन आम तौर पर एक कदम बढ़ाने के लिए ++ (इंक्रीमेंट) या -- (डिक्रीमेंट) ऑपरेटर का उपयोग किया जाता है।

विभिन्न प्रकार के लूप के लिए सिंटेक्स

    आम तौर पर चार प्रकार के लूप होते हैं: while(){}     do {} while(),     for(){}   और   foreach(){}

while() {} लूप

    while() {} लूप आमतौर पर डेटाबेस से डेटा लाने के लिए उपयोग किया जाता है। डाटाबेस ड्राइवर PHP सरणी (array) सूचक (pointer) से अलग हैं। प्रत्येक सरणी में इसके 'वर्तमान' (current) तत्व के लिए एक आंतरिक (internal) सूचक होता है, जिसे सरणी में डाले गए पहले तत्व के लिए प्रारंभ किया जाता है। इसी तरह, डेटाबेस से डेटा को क्वेरी query (ऑब्जेक्ट डेटा-टाइप) के रूप में आयात किया जाता है और फिर साहचर्य सरणी (associative array) में परिवर्तित किया जाता है।

    उस साहचर्य सरणी से प्रत्येक पंक्ति (row) while() {} लूप द्वारा लाई जाती है। हालाँकि, एक सरल while() {} लूप को नीचे समझाया गया है:

<?php
  $num = 0; // इनिशिय­लाइज़ेशन
  while( $num <= 10 ) { // जाँच की जाने वाली कंडीशन कोष्ठक के अंदर है
    echo $num . ' &nbsp; '; // कोड का ब्लॉक पुनरावृत्ति के ऊपर होना चाहिए।
    $num = $num + 1; // पुनरावृत्ति: आप 2 या अधिक पूर्णांक integer मान को बढ़ा सकते हैं
  }
?>

0   1   2   3   4   5   6   7   8   9   10  

    उपरोक्त उदाहरण में, while (आरक्षित कीवर्ड) का उपयोग लूप के लिए किया जाता है। आप उपरोक्त प्रत्येक संख्या को एक नई पंक्ति में आउटपुट करने के लिए <br /> HTML लाइन-ब्रेक तत्व का उपयोग कर सकते हैं। यह ध्यान रखना महत्वपूर्ण है कि चर $num का मान हर बार बदल दिया जाता है, जब {} कर्ली ब्रेसिज़ के अंदर कोड के ब्लॉक को निष्पादित किया जाता है। इस प्रकार, आपको $num के मूल्य को एक अनुरोध प्रतिक्रिया चक्र में रीसेट करने के लिए सावधान रहना चाहिए। एक और उदाहरण देखते हैं:

<?php
  $num = 20;
  while( $num >= 0 ) {
    echo $num . '<br />';
    $num -= 2; // $num = $num - 2; के समान
  }
?>

    उपरोक्त उदाहरण में, चर $num का मान 20 के साथ आरंभीकृत (असाइन) किया गया है । आप इसे 0(शून्य) से प्रारंभ कर सकते हैं और फिर कंडीशन को $num <= 20 से बदल सकते हैं । साथ ही, आपको पुनरावृत्ति को $num += 2; से बदलना होगा। फिर आउटपुट निम्नलिखित परिणाम के विपरीत क्रम में होगा। ऐसे कई तरीके हैं, जिनमें आप विभिन्न परिणाम प्राप्त करने के लिए खेल और प्रयोग कर सकते हैं।

20
18
16
14
12
10
8
6
4
2
0

do {} while() लूप

    do {} while () एक विशेष प्रकार while का लूप है, जिसमें {} कर्ली ब्रेसिज़ के अंदर कोड के ब्लॉक को कम से कम एक बार निष्पादित किया जाता है, चाहे while (आरक्षित कीवर्ड) के बाद कोष्ठक के अंदर कंडीशन false है। इसके बाद, कंडीशन की जांच की जाती है, और जब यह true होता है, do{} while() तब तक उस घुंघराले ब्रेसिज़ के अंदर कोड के ब्लॉक को निष्पादित करेगा, जब तक कि कंडीशन false नहीं बन जाती।

<?php
  $num = 0.2;
  do {
    echo $num . ' &nbsp; ';
// do-while लूप कम से कम पहली बार 0.2 आउटपुट करेगा
    $num++; // $num = $num + 1; के समान
  } while( $num <= 10 ); // आउटपुट 0.2   1.2   2.2   3.2   4.2   5.2   6.2   7.2   8.2   9.2    है
  echo $num; // आउटपुट 10.2 है
?>

    उपरोक्त उदाहरण में, चर $num पहले 0.2 मूल्य के साथ आरंभीकृत (असाइन) किया गया है। यह महत्वपूर्ण है कि मान एक संख्यात्मक डेटा-प्रकार या null होना चाहिए। आपको do {} while() के बाद अन्त में ; (सेमी-कोलन) संलग्न करना होगा, अन्यथा ERROR दिखाया जाएगा। समापन PHP टैग से पहले अंतिम पंक्ति जानबूझकर यह समझाने के लिए रखी गई है कि ; (सेमी-कोलन) do-while लूप में बहुत महत्वपूर्ण है। साथ ही, चर $num का मान, यहां वर्णित सभी चार प्रकार के लूप्स के बाद प्रदर्शित या उपयोग किया जा सकता है।

for() {} लूप

    for() {} लूप, while लूप के समान है, लेकिन ऊपर उल्लिखित सभी तीन आवश्यकताएं, अर्थात्, इनिशिय­लाइज़ेशन, कंडीशन और इटरेशन को for (आरक्षित कीवर्ड) के ठीक बाद () कोष्ठक के अंदर रखा जाना है। for() {} और foreach() {} लूप आमतौर पर PHP सरणियों (arrays) के साथ उपयोग किए जाते हैं।

    आप Array Functions का उपयोग सूचक (pointer) को घुमाने (move) के लिए या PHP सरणी में सूचक का स्थान प्राप्त करने के लिए कर सकते हैं, उदाहरण के लिए, current(), next(), prev(), end(), reset()और each() । इस तरह, आप अपने सीएमएस (CMS) या अपनी वेबसाइट में विषयों को पृष्ठांकित (paginate) कर सकते हैं। सरल for() {} लूप को नीचे समझाया गया है:

<?php
  for( $num = 0; $num <= 10; $num++ ) {
    echo $num . ' &nbsp; ';
  }
  echo $num;
?>

0   1   2   3   4   5   6   7   8   9   10   11

foreach() {} लूप

    foreach() {}लूप का उपयोग केवल सरणियों (arrays) से डेटा प्राप्त करने के लिए किया जाता है। इसका मतलब है कि foreach() {} लूप (जैसा ऊपर बताया गया है), while() {}, do{} while() और for() {} लूप्स से भिन्न है। foreach() {} लूप दो प्रकार के होते हैं: (1) किसी सरणी के संबंधित आइटम के मान प्राप्त करने के लिए, और (2) किसी सरणी से कुंजियाँ और उनके संबंधित मान प्राप्त करने के लिए।

<?php
  $my_array = [ 2, 3, 5, 7, 11, 13, 17, 19 ];
  foreach( $my_array as $my_item ) {
    echo $my_item . ' &nbsp; ';
  }
?>

2   3   5   7   11   13   17   19  

    जैसा कि ऊपर उल्लेख किया गया है, foreach() {} लूप को तीन आवश्यकताओं की जरुरत नहीं है। एक सरणी में वस्तुओं की निश्चित संख्या होती है। इसलिए foreach() {} स्वचालित रूप से लूप के आरंभीकरण, सशर्त अभिव्यक्ति और पुनरावृत्ति को निर्धारित करता है। उपरोक्त उदाहरण में, आप देख सकते हैं कि प्रत्येक आइटम का केवल मान ही आउटपुट है।

    हालाँकि, निम्नलिखित दो उदाहरणों में, (पहला एक अनुक्रमित सरणी है, और दूसरा एक साहचर्य सरणी है), कुंजियाँ और उनके संबंधित मान आउटपुट हैं। आउटपुट में दिखाए गए तीर (&rArr;) PHP interpreter से नहीं आते हैं, लेकिन वे यूनिकोड प्रतीक हैं।

<?php
  $my_array = [ 2, 3, 5, 7, 11, 13, 17, 19 ];
  foreach( $my_array as $key_name => $my_item ) {
    echo $key_name . '&rArr;' . $my_item . ' &nbsp; ';
  }
?>

0⇒2   1⇒3   2⇒5   3⇒7   4⇒11   5⇒13   6⇒17   7⇒19  

<?php
  $my_array = [ 'a' => 2, 'b' => 3, 'c' => 5, 'd' => 7, '0' => 11, false => 13, '' => 17, null => 19 ];
  foreach( $my_array as $key_name => $my_item ) {
    echo $key_name . '&rArr;' . $my_item . ' &nbsp; ';
  }
?>

a⇒2   b⇒3   c⇒5   d⇒7   0⇒13   ⇒19  

    उपरोक्त उदाहरण में, आप देख सकते हैं कि छठी वस्तु साहचर्य सरणी के पाँचवीं वस्तु की जगह लेती है, और आठवीं वस्तु साहचर्य सरणी के सातवें आइटम की जगह लेती है। ऐसा इसलिए है क्योंकि false और '0' का मूल्यांकन 0, के रूप में किया जाता है और '' (खाली स्ट्रिंग) का मूल्यांकन null के रूप में किया जाता है ।

अनंत लूप्स

    जब while या for लूप के कोष्ठकों के अंदर सशर्त अभिव्यक्ति का हमेशा true के रूप में मूल्यांकन किया जाता है, तो PHP interpreter या अन्य प्रोग्रामिंग भाषाओं में कंपाइलर LOOP को समाप्त नहीं कर सकते हैं। इस तरह के लूप को अनंत या अनिश्चित लूप कहा जाता है। आपको अपनी स्क्रिप्ट में कोड की सावधानी से जांच करनी चाहिए, और हमेशा अनंत लूप से बचना चाहिए।

<?php while( true ) { echo 'अनंत while लूप<br />'; } ?>

<?php for( ; ; ) { echo 'अनंत for लूप<br />'; } ?>

    कभी-कभी, == (बराबर) ऑपरेटर वाली सशर्त अभिव्यक्ति को गलती से = (असाइनमेंट ऑपरेटर) लिख दिया जाता है, जो अनंत लूप बना सकता है। इस प्रकार के लूप का एक उदाहरण निम्न है:

<?php for( $num = 0; $num = 1; $num++) { echo 'Infinite FOR LOOP<br />'; } ?>


Leave a Comment: