Metoda __invoke

Metoda magjike __invoke lejon një instancë të klasës të thirret si funksion. Kur një objekt thirret si funksion, PHP automatikisht therret këtë metodë. Metoda mund të pranojë parametra dhe të kthejë një vlerë, ashtu si një funksion i zakonshëm.

Sintaksa

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

Shembull

Le të krijojmë një klasë me metodën __invoke dhe të thërrasim objektin si funksion:

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

Rezultati i ekzekutimit të kodit:

php'Hello, John!'

Shembull

Përdorimi i __invoke me disa parametra:

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

Rezultati i ekzekutimit të kodit:

php8

Shembull

Kontrollimi nëse një objekt është i thirrshëm duke përdorur 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));
?>

Rezultati i ekzekutimit të kodit:

phpfalse
true

Shihni Gjithashtu

  • metoda __construct,
    e cila është konstruktori i klasës
  • metoda __toString,
    e cila lejon që objekti të paraqitet si varg