Metoden __invoke
Den magiske metoden __invoke lar en instans av en klasse bli kalt som en funksjon.
Når et objekt kalles som en funksjon, vil PHP automatisk kalle denne metoden.
Metoden kan ta parametere og returnere en verdi, akkurat som en vanlig funksjon.
Syntaks
class MyClass {
public function __invoke(...$args) {
// implementering
}
}
Eksempel
La oss opprette en klasse med metoden __invoke og kalle objektet som en funksjon:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Resultat av kjøring av koden:
'Hello, John!'
Eksempel
Bruk av __invoke med flere parametere:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Resultat av kjøring av koden:
8
Eksempel
Sjekk om et objekt er kallbart ved hjelp av is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Resultat av kjøring av koden:
false
true
Se også
-
metoden
__construct,
som er konstruktøren til klassen -
metoden
__toString,
som lar et objekt bli representert som en streng