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
class MyClass {
public function __invoke(...$args) {
// implementimi
}
}
Shembull
Le të krijojmë një klasë me metodën __invoke dhe të thërrasim objektin si funksion:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Rezultati i ekzekutimit të kodit:
'Hello, John!'
Shembull
Përdorimi i __invoke me disa parametra:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Rezultati i ekzekutimit të kodit:
8
Shembull
Kontrollimi nëse një objekt është i thirrshëm duke përdorur is_callable:
<?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:
false
true
Shihni Gjithashtu
-
metoda
__construct,
e cila është konstruktori i klasës -
metoda
__toString,
e cila lejon që objekti të paraqitet si varg