Metod __invoke
Magični metod __invoke omogućava instanci klase da bude pozvana kao funkcija.
Kada se objekat poziva kao funkcija, PHP automatski poziva ovaj metod.
Metod može da prima parametre i vraća vrednost, kao obična funkcija.
Sintaksa
class MyClass {
public function __invoke(...$args) {
// implementacija
}
}
Primer
Napravićemo klasu sa metodom __invoke i pozvaćemo objekat kao funkciju:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Rezultat izvršavanja koda:
'Hello, John!'
Primer
Upotreba __invoke sa više parametara:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Rezultat izvršavanja koda:
8
Primer
Provera da li je objekat pozivljiv pomoću is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Rezultat izvršavanja koda:
false
true
Vidi takođe
-
metod
__construct,
koji je konstruktor klase -
metod
__toString,
koji omogućava da objekat bude predstavljen u vidu stringa