logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

PHP पाठ – पाठ 9 – पुनरावृत्ति (Recursion)।

09/10/2025, by Ivan

पिछले पाठ में हमने PHP में फ़ंक्शन्स का उपयोग सीखा था। अब हम उनके उपयोग को और गहराई से समझेंगे। पहले तक हम ऐसे प्रकार की फ़ंक्शन्स लिखते थे:

<?php
function myFunction() { // फ़ंक्शन की परिभाषा

}

$x = myFunction(); // फ़ंक्शन का कॉल
?>

लेकिन क्या होगा अगर हम उसी फ़ंक्शन के अंदर उसी को ही दोबारा कॉल करें?

<?php
function myFunction() {
  $x = myFunction();
  ...
  return $x;
}

$y = myFunction();
?>

जब एक फ़ंक्शन अपने ही अंदर खुद को कॉल करता है, इसे रिकर्शन (Recursion) कहा जाता है। यह सुनने में जटिल लगता है, लेकिन व्यवहार में यह बहुत सरल है।

उदाहरण: संख्या को घात (Power) में उठाना

गणित में, किसी संख्या की n-वीं घात का अर्थ है उस संख्या को स्वयं से n बार गुणा करना। PHP में इसे हम रिकर्शन से इस प्रकार लिख सकते हैं:

<?php
function myDegree($x, $n) {
  if ($n == 0) {
    return 1;
  }
  if ($n < 0) {
    return myDegree(1 / $x, -$n); // -$n का अर्थ है चिह्न को धनात्मक करना
  }
  return $x * myDegree($x, $n - 1); // फ़ंक्शन को स्वयं के भीतर कॉल करना
}

$y = myDegree(2, -4); // पहला कॉल
print $y;
?>

विस्तृत विश्लेषण:

जब return चलाया जाता है, फ़ंक्शन उसी क्षण समाप्त होकर मान वापस लौटाता है। पहला शर्त if($n == 0) — यदि घात शून्य है, तो परिणाम 1 होगा (क्योंकि किसी भी संख्या की 0वीं घात 1 होती है)। दूसरा शर्त if($n < 0) — यदि घात ऋणात्मक है, तो हम उसे धनात्मक बनाते हैं, लेकिन आधार (base) को उसके व्युत्क्रम (reciprocal) में बदल देते हैं।

अंत में, यदि घात 0 से अधिक है, तो फ़ंक्शन हर बार खुद को एक कम घात ($n - 1) के साथ कॉल करता है और परिणाम को $x से गुणा करता है।

कार्य की प्रत्येक पुनरावृत्ति:

1️⃣ पहली बार: घात = -4, संख्या = 2 → शर्त 2 चलेगी → संख्या बन जाएगी 1/2 और घात = 4।

2️⃣ दूसरी बार: घात = 4, संख्या = 0.5 → फिर तीसरी शर्त चलेगी → return $x * myDegree($x, $n - 1)

3️⃣ अगली पुनरावृत्तियाँ क्रमशः 3, 2, 1 तक जारी रहेंगी।

अंत में जब $n == 0 होगा, तो 1 लौटाया जाएगा, और फिर सभी पिछले स्तरों के गुणन से अंतिम परिणाम मिलेगा।

उदाहरण: फैक्टोरियल (Factorial)

संख्या n का फैक्टोरियल (n!) वह गुणनफल होता है जो 1 से लेकर n तक की सभी संख्याओं का गुणा करने से प्राप्त होता है। उदाहरण: 6! = 6 × 5 × 4 × 3 × 2 × 1 = 720.

PHP में हम यह भी रिकर्शन से लिख सकते हैं:

<?php
function myRecursion($x) {
  if ($x == 1) {
    return $x;
  }
  return $x * myRecursion($x - 1);
}

$y = myRecursion(8);
print $y;
?>

यह उदाहरण पहले वाले से भी सरल है। हर बार फ़ंक्शन स्वयं को $x - 1 के साथ कॉल करता है, जब तक कि $x == 1 नहीं हो जाता। इस प्रकार क्रमशः 8×7×6×5×4×3×2×1 का परिणाम प्राप्त होता है।

यह उदाहरण स्पष्ट रूप से दिखाता है कि रिकर्शन कैसे एक ही फ़ंक्शन के बार-बार कॉल से जटिल गणनाएँ सरल बना सकता है।