__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,
    जो ऑब्जेक्ट को स्ट्रिंग के रूप में प्रस्तुत करने की अनुमति देती है