PHP functions পর্ব-২: Function within function,conditional এবং Recursive function

PHP তে Function এর মধ্যে function ব্যাপারটি কি ?

যখন একটি function কে আরেকটি function এর মধ্যে declare করা হয়, PHP অথবা যেকোনো প্রোগ্রামিং এর পরিভাষায় একে বলা হয় functions within function বা function এর মধ্যে function. আর এর জন্য আপনাকে যা কাজ করতে হবে :

  • প্রথমে Parent function অর্থাৎ যেই function এর মধ্যে function টি declare করা হয়েছে, সেই function টি কল করতে হবে।
  • তারপর child function বা প্যারেন্ট function এর মধ্যের function টি কল করতে পারবেন।

নিচের উদাহরণ লক্ষ্য করুন:

<?php
function foo() 
{
  function bar() 
  {
    echo "I don't exist until foo() is called.\n";
  }
}
 
/* We can't call bar() yet
   since it doesn't exist. */
 
foo();
 
/* Now we can call bar(),
   foo()'s processing has
   made it accessible. */
 
bar();
 
?>

ব্যাখ্যা: function foo কল করার পরই function bar কল করা যাবে ।

PHP তে Conditional Function কি ?

যখন কোনো function, কোনো একটা condition true হওয়ার পর declare বা create হয় । PHP অথবা যেকোনো প্রোগ্রামিং এর পরিভাষায় একে বলা হয় conditional function. নিচের উদাহরণ লক্ষ্য করুন:

<?php
 
$makefoo = true;
 
/* We can't call foo() from here 
   since it doesn't exist yet,
   but we can call bar() */
 
bar();
 
if ($makefoo) {
  function foo()
  {
    echo "I don't exist until program execution reaches me.\n";
  }
}
 
/* Now we can safely call foo()
   since $makefoo evaluated to true */
 
if ($makefoo) foo();
 
function bar() 
{
  echo "I exist immediately upon program start.\n";
}
 
?>

ব্যাখ্যা: আপনি যদি $makefoo variable এর value false করে দেন, তাহলে foo() function declare এবং call কোনোটিই হবে না।

PHP তে Recursive Function কি ?

function যখন নিজেই নিজেকে কল করে বা যখন function নিজের মধ্যেই নিজেকে কল করে , PHP অথবা যেকোনো Programming Language এর পরিভাষায় একে বলা হয় Recursive Function বা Recursion. নিচের উদাহরণ দেখুন

<?php
function recursion($a)
{
    if ($a <=10) {
        echo "$a\n";
        recursion($a + 1);
    }
}
recursion(5);  //Result: 5,6,7,8,9,10
?>

ব্যাখ্যা : লক্ষ্য করুন recursion function টি একটি condition true না হওয়া পর্যন্ত নিজেই নিজেকে কল করছে।

Note: তবে recursive function সব সময় একটা condition এর মধ্যে আটকানো থাকতে হয়, অন্যথা function টি infinite বা অন্যন্ত সময় পর্যন্ত run করতে থাকবে, এবং compile error দেখাবে।

চলুন এবার একটা recursive function তৈরী করি যেটা আমাদেরকে একটা পূর্ণাঙ্গ সংখ্যার factorial বের করে দিবে।
একটি সংখ্যার ফ্যাক্টরিয়াল(factorial) হলো সংখ্যাটির সমান বা তার থেকে ছোটো সকল ধণাত্মক পূর্ণসংখ্যার গূণফল, n এর ফ্যাক্টরিয়ালকে “n!” দ্বারা প্রকাশ করা হয়, যেমন- n!=n*(n-1)*(n-2)*(n-3)….1*2*3

উদাহরণস্বরূপ:5!=5*4*3*2*1=120

<?php
// recursive function
// to calculate factorial
function calcFactorial($num) {
    // define variable to hold product
    static $product = 1;
    // recurse until $num becomes 1
    if ($num > 1) {
        $product = $product * $num;
        $num--;
        calcFactorial($num);
    }
return $product;
}
// result: "Factorial of 5 is 120"
echo "Factorial of 5 is " . calcFactorial(5);
?>

Leave A Reply

Your email address will not be published. Required fields are marked *