__invoke metodu

Sehrli __invoke metodu sinif nümunəsinin funksiya kimi çağırılmasına imkan verir. Obyekt funksiya kimi çağırılanda, PHP avtomatik olaraq bu metodu çağırır. Metod parametrlər qəbul edə və adi funksiya kimi qiymət qaytara bilər.

Sintaksis

phpclass MyClass {
  public function __invoke(...$args) {
    // realizasiya
  }
}

Nümunə

__invoke metodu olan sinif yaradaq və obyekti funksiya kimi çağıraq:

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

Kodun icrasının nəticəsi:

php'Hello, John!'

Nümunə

__invoke metodundan bir neçə parametrlə istifadə:

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

Kodun icrasının nəticəsi:

php8

Nümunə

is_callable ilə obyektin çağırıla bilən olub-olmadığının yoxlanılması:

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

Kodun icrasının nəticəsi:

phpfalse
true

Həmçinin bax

  • __construct metodu,
    hansı ki, sinfin konstruktorudur
  • __toString metodu,
    hansı ki, obyektin sətir kimi təqdim olunmasına imkan verir