Metode __invoke
Metode ajaib __invoke memungkinkan instance kelas untuk dipanggil seperti fungsi.
Ketika objek dipanggil seperti fungsi, PHP secara otomatis memanggil metode ini.
Metode dapat menerima parameter dan mengembalikan nilai, seperti fungsi biasa.
Sintaks
class MyClass {
public function __invoke(...$args) {
// implementasi
}
}
Contoh
Mari buat kelas dengan metode __invoke dan panggil objek seperti fungsi:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Hasil eksekusi kode:
'Hello, John!'
Contoh
Penggunaan __invoke dengan beberapa parameter:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Hasil eksekusi kode:
8
Contoh
Memeriksa apakah objek dapat dipanggil menggunakan is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Hasil eksekusi kode:
false
true
Lihat Juga
-
metode
__construct,
yang merupakan konstruktor kelas -
metode
__toString,
yang memungkinkan objek untuk direpresentasikan sebagai string