PHP-তে অন্তর্নির্মিত ফাংশনে কলব্যাক
PHP-তে বেশ কিছু অন্তর্নির্মিত ফাংশন রয়েছে
যেগুলো প্যারামিটার হিসেবে কলব্যাক গ্রহণ করে।
সেগুলোর সাথে কাজ করার সাধারণ নীতি আমরা
array_map ফাংশনের উদাহরণে শিখব।
এই ফাংশনটি প্রথম প্যারামিটার হিসেবে
একটি কলব্যাক নেয়, এবং দ্বিতীয় প্যারামিটার হিসেবে - একটি অ্যারে। ফাংশনটি
অ্যারের প্রতিটি উপাদানে কলব্যাক প্রয়োগ করে
এবং পরিবর্তিত অ্যারে ফেরত দেয়।
আমাদের পূর্বে অর্জিত জ্ঞান বিবেচনা করে এই ফাংশনটি ব্যবহারের বিকল্পগুলো দেখা যাক।
বিকল্প 1
আসুন অন্তর্নির্মিত ফাংশন
sqrt
ব্যবহার করে অ্যারের প্রতিটি উপাদান থেকে
বর্গমূল বের করি।
এর জন্য, প্যারামিটার হিসেবে কলব্যাকে
আমরা এই ফাংশনের নামসহ একটি স্ট্রিং পাঠাব:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map('sqrt', $arr);
var_dump($res);
?>
বিকল্প 2
আমাদের তৈরি করা সাধারণ ফাংশন ব্যবহার করে অ্যারের প্রতিটি উপাদানকে বর্গ করি। এর জন্য, প্যারামিটার হিসেবে কলব্যাকে আমরা এই ফাংশনের নামসহ একটি স্ট্রিং পাঠাব:
<?php
$arr = [1, 2, 3, 4, 5];
function func($num) {
return $num ** 2;
}
$res = array_map('func', $arr);
var_dump($res);
?>
বিকল্প 3
আমাদের ফাংশনটিকে একটি ভেরিয়েবলে সংরক্ষিত বেনামী ফাংশনে রূপান্তরিত করি:
<?php
$arr = [1, 2, 3, 4, 5];
$func = function ($num) {
return $num ** 2;
};
$res = array_map($func, $arr);
var_dump($res);
?>
বিকল্প 4
বেনামী ফাংশনটি সরাসরি প্যারামিটার হিসেবে পাঠাই:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(function ($num) {
return $num ** 2;
}, $arr);
var_dump($res);
?>
বিকল্প 5
এরো ফাংশন ব্যবহার করি:
<?php
$arr = [1, 2, 3, 4, 5];
$res = array_map(fn ($num) => $num ** 2, $arr);
var_dump($res);
?>
বিকল্প 6
ধরুন এখন সংখ্যাটিকে কোন ঘাতে উঠাতে হবে
সেটা কলব্যাকের একটি বাহ্যিক ভেরিয়েবল দ্বারা নির্ধারিত হয়।
use এর মাধ্যমে অ্যাক্সেস পেয়ে
এই ভেরিয়েবলটি ব্যবহার করি:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(function ($num) use ($pow) {
return $num ** $pow;
}, $arr);
var_dump($res);
?>
বিকল্প 7
পূর্ববর্তী কোডটি এরো ফাংশন দিয়ে পুনরায় লিখি।
এখন $pow ভেরিয়েবলটি
স্বয়ংক্রিয়ভাবে উপলব্ধ হবে:
<?php
$arr = [1, 2, 3, 4, 5];
$pow = 3;
$res = array_map(fn ($num) => $num ** $pow, $arr);
var_dump($res);
?>
ব্যবহারিক কাজ
স্ট্রিং সহ একটি অ্যারে দেওয়া আছে। অ্যারের প্রতিটি উপাদানের টেক্সট আপার কেসে কনভার্ট করুন।
স্ট্রিং সহ একটি অ্যারে দেওয়া আছে। অ্যারের প্রতিটি উপাদানের টেক্সট উল্টিয়ে দিন যাতে অক্ষরগুলো উল্টো ক্রমে যায়।