PHP-তে অন্তর্নির্মিত ফাংশনে কলব্যাক

PHP-তে বেশ কিছু অন্তর্নির্মিত ফাংশন রয়েছে যেগুলো প্যারামিটার হিসেবে কলব্যাক গ্রহণ করে। সেগুলোর সাথে কাজ করার সাধারণ নীতি আমরা array_map ফাংশনের উদাহরণে শিখব। এই ফাংশনটি প্রথম প্যারামিটার হিসেবে একটি কলব্যাক নেয়, এবং দ্বিতীয় প্যারামিটার হিসেবে - একটি অ্যারে। ফাংশনটি অ্যারের প্রতিটি উপাদানে কলব্যাক প্রয়োগ করে এবং পরিবর্তিত অ্যারে ফেরত দেয়।

আমাদের পূর্বে অর্জিত জ্ঞান বিবেচনা করে এই ফাংশনটি ব্যবহারের বিকল্পগুলো দেখা যাক।

বিকল্প 1

আসুন অন্তর্নির্মিত ফাংশন sqrt ব্যবহার করে অ্যারের প্রতিটি উপাদান থেকে বর্গমূল বের করি। এর জন্য, প্যারামিটার হিসেবে কলব্যাকে আমরা এই ফাংশনের নামসহ একটি স্ট্রিং পাঠাব:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map('sqrt', $arr);
  var_dump($res);
?>

বিকল্প 2

আমাদের তৈরি করা সাধারণ ফাংশন ব্যবহার করে অ্যারের প্রতিটি উপাদানকে বর্গ করি। এর জন্য, প্যারামিটার হিসেবে কলব্যাকে আমরা এই ফাংশনের নামসহ একটি স্ট্রিং পাঠাব:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($num) {
    return $num ** 2;
  }

  $res = array_map('func', $arr);
  var_dump($res);
?>

বিকল্প 3

আমাদের ফাংশনটিকে একটি ভেরিয়েবলে সংরক্ষিত বেনামী ফাংশনে রূপান্তরিত করি:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $func = function ($num) {
    return $num ** 2;
  };

  $res = array_map($func, $arr);
  var_dump($res);
?>

বিকল্প 4

বেনামী ফাংশনটি সরাসরি প্যারামিটার হিসেবে পাঠাই:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(function ($num) {
    return $num ** 2;
  }, $arr);
  
  var_dump($res);
?>

বিকল্প 5

এরো ফাংশন ব্যবহার করি:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  $res = array_map(fn ($num) => $num ** 2, $arr);
  var_dump($res);
?>

বিকল্প 6

ধরুন এখন সংখ্যাটিকে কোন ঘাতে উঠাতে হবে সেটা কলব্যাকের একটি বাহ্যিক ভেরিয়েবল দ্বারা নির্ধারিত হয়। use এর মাধ্যমে অ্যাক্সেস পেয়ে এই ভেরিয়েবলটি ব্যবহার করি:

php<?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<?php
  $arr = [1, 2, 3, 4, 5];
  $pow = 3;
  
  $res = array_map(fn ($num) => $num ** $pow, $arr);
  var_dump($res);
?>

ব্যবহারিক কাজ

Задание 1

স্ট্রিং সহ একটি অ্যারে দেওয়া আছে। অ্যারের প্রতিটি উপাদানের টেক্সট আপার কেসে কনভার্ট করুন।

Задание 2

স্ট্রিং সহ একটি অ্যারে দেওয়া আছে। অ্যারের প্রতিটি উপাদানের টেক্সট উল্টিয়ে দিন যাতে অক্ষরগুলো উল্টো ক্রমে যায়।