__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 մեթոդը,
    որը թույլ է տալիս օբյեկտը ներկայացնել տողի տեսքով