PHP Functions
PHP functions,Parameters এবং arguments
PHP তে Functions কি ? (What are Functions in PHP?):
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
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 এবং 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
PHP তে functions এর arguments গুলোকে কয় ভাবে receive বা গ্রহণ করা যায়?
PHP তে দুই ভাবে argument গুলোকে receive বা গ্রহণ করা যায় :
- সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করা যায়।
- functions এর Parameter ছাড়া argument গুলো রিসিভ করা যায়।
PHP তে সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করার নিয়ম কি ?
PHP তে সরাসরি functions এর Parameter দিয়ে argument গুলো রিসিভ করার দুইটি নিয়ম আছে :
- ভিন্ন ভিন্ন argument এর জন্য ভিন্ন ভিন্ন parameter declare করার মাধ্যমে
- functions এর সব গুলো argument এর জন্য একটি parameter declare করার মাধ্যমে
অর্থাৎ প্রত্যেকটি 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); ?>
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 আছে।
- func_get_args()
- func_get_arg()
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 ?>
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 ?>
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 ?>