PHP functions,Parameters এবং arguments

PHP তে Functions কি ? (What are Functions in PHP?):

juicer machine

PHP অথবা যেকোনো প্রোগ্রামিং Language এ function হচ্ছে Program এর এমন একটা code block যা একটা নির্দিষ্ট কার্য সম্পাদনের এবং তা বার বার ব্যবহারের জন্যে ব্যবহৃত হয়। অর্থাৎ function এর মধ্যে এমন কিছু Instruction বা নির্দেশাবলী থাকে যা function ব্যবহারকারী থেকে এক বা একাধিক input নিয়ে এক বা একাধিক output বা result রিটার্ন করার জন্য ব্যবহৃত হয়। সাধারণত, program page লোড হওয়ার সাথে সাথেই ডিক্লেয়ার করা function execute হয়না, যতক্ষণ না function কে call করা না হয়। উদাহরণ হিসেবে উপরের juice machine টি হচ্ছে function আর কমলা গুলো হচ্ছে function এর input এবং function এর output বা রিটার্ন হচ্ছে কমলার শরবত।

PHP তে function কত প্রকার ?

দুই প্রকার :

  • PHP Pre-built function বা PHP language কর্তৃক পূর্ব নির্ধারিত বিভিন্ন library function বা library ছাড়া function
  • User/Programmer defined function বা Programmer কর্তৃক নির্ধারিত function

Zend Certified PHP Engineering (ZCPE) Course

PHP তে function কিভাবে লিখতে হয়?

  • PHP তে function define করার সময় letter অথবা underscore দিয়ে শুরু করতে হয়।
  • PHP তে function Case Insensitive অর্থাৎ একই নামে কোনো ফাঙ্কশন lowercase এবং uppercase এর কারণে আলাদা function হিসেবে বিবেচিত হবে না।

PHP তে function লেখার Syntax কি ?

<?php
function functionName($arg_1, $arg_2, /* ..., */ $arg_n)
{
//code to be executed;
}
?>

চলুন syntax অনুসারে একটা function তৈরী করে ফেলি :

function sayHello(){
echo "Hello World";
}
sayHello();  //Output: Hello World

PHP তে function এর মধ্যে Parameter কি এবং argument কি ?

function declaration অথবা define এর সময় parentheses এর মধ্যে ব্যবহৃত একেকটি variable কে একেকটি function parameter বলা হয়। একই ভাবে function calling এর সময় parentheses এর মধ্যে ব্যবহৃত একেকটি variable কে একেকটি function argument বলা হয়।function parameter এবং arguments কিভাবে কাজ করে তা বাজার জন্য নিচের ছবিটি লক্ষ্য করুন :

function parameter and arguments

চলুন function parameter এবং arguments দিয়ে একটা function define এবং call করি।

<?php
// Defining function
function getSum($num1, $num2){
  $sum = $num1 + $num2;
  echo "Sum of the two numbers $num1 and $num2 is : $sum";
}
 
// Calling function
getSum(10, 20); 
?>

উপরের কোডটির আউটপুট আসবে :

Sum of the two numbers 10 and 20 is : 30

Zend Certified PHP Engineering (ZCPE) Course

PHP তে functions এর arguments গুলোকে কয় ভাবে receive বা গ্রহণ করা যায়?

PHP তে দুই ভাবে argument গুলোকে receive বা গ্রহণ করা যায় :

  • সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করা যায়।
  • functions এর Parameter ছাড়া argument গুলো রিসিভ করা যায়।

PHP তে সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করার নিয়ম কি ?

PHP তে সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করার দুইটি নিয়ম আছে :

  1. ভিন্ন ভিন্ন argument এর জন্য ভিন্ন ভিন্ন parameter declare করার মাধ্যমে
  2. অর্থাৎ প্রত্যেকটি argument এর জন্য আলাদা আলাদা parameter ঘোষণা করতে হবে।

    উদাহরণ ১:

    <?php
    // Defining function
    function getSum($num1, $num2){
      $sum = $num1 + $num2;
      echo "Sum of the two numbers $num1 and $num2 is : $sum";
    }
     
    // Calling function
    getSum(10, 20); 
    ?>
    
  3. functions এর সব গুলো argument এর জন্য একটি parameter declare করার মাধ্যমে
  4. functions এর সব গুলো argument এর জন্য একটি parameter declare করার মাধ্যমে function এর arguments গুলো receive করতে হলে declare করা parameter এর সামনে তিনটি ডট () দিতে হবে। এক্ষেত্রে paramter টি argument value গুলোকে array আকারে রিসিভ করবে।

    উদাহরণ ২:

    <?php
    // Defining function
    function getSum(...$numbers){
      $sum = $numbers[0]+$numbers[1];
      echo "Sum of the two numbers ".$numbers[0]." and ".$numbers[1]." is : $sum";
    }
     
    // Calling function
    getSum(10, 20); 
    //Result: Sum of the two numbers 10 and 20 is : 30
    ?>
    

PHP তে functions এর Parameter ছাড়া argument গুলো রিসিভ করার নিয়ম কি ?

PHP তে functions এর Parameter ছাড়া argument গুলো রিসিভ করার জন্য দুইটি built-in function আছে।

  1. func_get_args()
  2. func_get_args() function দিয়ে function এর ভিতরে সবগুলো argument কে array হিসেবে রিসিভ করতে পারবেন। নিচের উদাহরণ লক্ষ্য করুন :

    <?php
    // Defining function
    function getSum(){
      $numbers=func_get_args();
      $sum = $numbers[0]+$numbers[1];
      echo "Sum of the two numbers ".$numbers[0]." and ".$numbers[1]." is : $sum";
    }
     
    // Calling function
    getSum(10, 20); 
    //Result: Sum of the two numbers 10 and 20 is : 30
    ?>
    
  3. func_get_arg()
  4. func_get_arg() function দিয়ে function এর ভিতরে প্রত্যেকটি argument কে আলাদা আলাদা ভাবে রিসিভ করতে হবে । নিচের উদাহরণ লক্ষ্য করুন :

    <?php
    // Defining function
    function getSum(){
      $number1=func_get_arg(0);
      $number2=func_get_arg(1);
      $sum = $number1+$number2;
      echo "Sum of the two numbers ".$number1." and ".$number2." is : $sum";
    }
     
    // Calling function
    getSum(10, 20); 
    //Result: Sum of the two numbers 10 and 20 is : 30
    ?>
    

Zend Certified PHP Engineering (ZCPE) Course

PHP তে functions এ একাধিক Parameter এ value পাঠানোর জন্য কি একটি argument ব্যবহার করতে পারবো ?

হ্যাঁ অবশ্যই পাঠানো যাবে। তবে সে ক্ষেত্রে argument এর সামনে তিনটি ডট () দিতে হবে। নিচের উদাহরণ দেখুন :

<?php
// Defining function
function getSum($number1,$number2){
 
  $sum = $number1+$number2;
  echo "Sum of the two numbers ".$number1." and ".$number2." is : $sum";
}
 
// Calling function
$numbers=[10,20];
getSum(...$numbers); 
//Result: Sum of the two numbers 10 and 20 is : 30
?>

PHP তে function এর মধ্যে কতগুলো argument রিসিভ হয়েছে, তা কি জানা সম্ভব?

হ্যাঁ সম্ভব। তার জন্য আপনাকে func_num_args() function টি ব্যবহার করতে হবে। নিচের উদাহরণটি দেখুন :

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo(1, 2, 3);   //Result: Number of arguments: 3
?>

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

Leave a Reply