কম্পিউটার টিউটোরিয়াল

PHP অ্যানোনিমাস ফাংশন (Anonymous Functions)


পরিচিতি

অ্যানোনিমাস ফাংশন (Anonymous function) হলো কোনো ইউজার-ডিফাইনড নাম ছাড়া ফাংশন। এটাকে ক্লোজার (closure) বা ল্যাম্বডা (lambda) ফাংশনও বলা হয়। কখনো কখনো একবার ব্যবহারের জন্য ফাংশন দরকার হতে পারে। ক্লোজার হলো একটি অ্যানোনিমাস ফাংশন যা তার ডিফাইন করা এনভায়রনমেন্টের ওভার ক্লোজ করে। এতে use কীওয়ার্ড স্পেসিফাই করতে হয়। অ্যানোনিমাস ফাংশনের সবচেয়ে कॉमन ইউজ হলো ইনলাইন কলব্যাক ফাংশন তৈরি করা।

সিনট্যাক্স

$var=function ($arg1, $arg2) { return $val; };
  • function কীওয়ার্ড এবং ওপেনিং প্যarethেনসিসের মাঝপথে কোনো ফাংশন নাম থাকে না।
  • ফাংশন ডেফিনিশনের পর সেমিকোলন থাকে কারণ অ্যানোনিমাস ফাংশন ডেফিনিশনগুলো এক্সপ্রেশন।
  • ফাংশনটি একটি ভেরিয়েবলে অ্যাসাইন করা হয় এবং পরে ভেরিয়েবলের নাম দিয়ে কল করা হয়।
  • অন্য ফাংশনে পাস করলে যা পরে সেটি কল করতে পারে, তাকে কলব্যাক বলা হয়।
  • আউটার ফাংশন থেকে রিটার্ন করলে সেটি আউটার ফাংশনের ভেরিয়েবল এক্সেস করতে পারে। এটাকে ক্লোজার বলা হয়।

অ্যানোনিমাস ফাংশন উদাহরণ

উদাহরণ

<?php
$var = function ($x) {return pow($x,3);};
echo "cube of 3 = " . $var(3);
?>

আউটপুট

এটি নিচের ফলাফল দেবে—

cube of 3 = 27

কলব্যাক হিসেবে অ্যানোনিমাস ফাংশন

নিচের উদাহরণে, বিল্ট-ইন usort() ফাংশনের আর্গুমেন্ট হিসেবে একটি অ্যানোনিমাস ফাংশন ব্যবহার করা হয়েছে। usort() ফাংশন একটি কম্প্যারিজন ফাংশন ব্যবহার করে দেওয়া অ্যারে সর্ট করে।

উদাহরণ

<?php
$arr = [10,3,70,21,54];
usort ($arr, function ($x , $y) {
    return $x > $y;
});
foreach ($arr as $x){
    echo $x . "\n";
}
?>

আউটপুট

এটি নিচের ফলাফল দেবে—

3 10 21 54 70

ক্লোজার হিসেবে অ্যানোনিমাস ফাংশন

ক্লোজার ও একটি অ্যানোনিমাস ফাংশন যা use কীওয়ার্ড দিয়ে নিজের স্কোপের বাইরের ভেরিয়েবল এক্সেস করতে পারে।

উদাহরণ

<?php
$maxmarks=300;
$percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;};
echo "marks=285 percentage=". $percent(285);
?>

আউটপুট

এটি নিচের ফলাফল দেবে—

marks=285 percentage=95

  1. PHP octdec() ফাংশন

  2. PHP mt_srand() ফাংশন

  3. PHP mt_getrandmax() ফাংশন

  4. পাইথনে অ্যানোনিমাস ফাংশন (Anonymous Function) কী?