__invoke মেথড

ম্যাজিক মেথড __invoke একটি ক্লাসের ইনস্ট্যান্সকে একটি ফাংশন হিসাবে কল করা সম্ভব করে। যখন একটি অবজেক্টকে একটি ফাংশন হিসাবে কল করা হয়, PHP স্বয়ংক্রিয়ভাবে এই মেথডটি কল করে। মেথডটি প্যারামিটার নিতে পারে এবং একটি মান ফেরত দিতে পারে, ঠিক একটি সাধারণ ফাংশনের মতো।

সিনট্যাক্স

phpclass MyClass {
  public function __invoke(...$args) {
    // বাস্তবায়ন
  }
}

উদাহরণ

আসুন __invoke মেথড সহ একটি ক্লাস তৈরি করি এবং অবজেক্টটিকে একটি ফাংশন হিসাবে কল করি:

php<?php
  class Greeter {
    public function __invoke($name) {
      return "Hello, $name!";
    }
  }
  
  $greet = new Greeter();
  echo $greet('John');
?>

কোড 실행ের ফলাফল:

php'Hello, John!'

উদাহরণ

একাধিক প্যারামিটার সহ __invoke এর ব্যবহার:

php<?php
  class Calculator {
    public function __invoke($a, $b) {
      return $a + $b;
    }
  }
  
  $calc = new Calculator();
  echo $calc(5, 3);
?>

কোড 실행ের ফলাফল:

php8

উদাহরণ

is_callable ব্যবহার করে একটি অবজেক্ট কলযোগ্য কিনা তা পরীক্ষা করা:

php<?php
  class Test {}
  
  $obj1 = new Test();
  $obj2 = new class { public function __invoke() {} };
  
  var_dump(is_callable($obj1));
  var_dump(is_callable($obj2));
?>

কোড 실행ের ফলাফল:

phpfalse
true

আরও দেখুন

  • __construct মেথড,
    যা ক্লাসের কনস্ট্রাক্টর
  • __toString মেথড,
    যা একটি অবজেক্টকে স্ট্রিং হিসাবে উপস্থাপন করতে দেয়