Kaedah __invoke
Kaedah ajaib __invoke membolehkan contoh kelas dipanggil sebagai fungsi.
Apabila objek dipanggil sebagai fungsi, PHP secara automatik memanggil kaedah ini.
Kaedah ini boleh menerima parameter dan mengembalikan nilai, seperti fungsi biasa.
Sintaks
class MyClass {
public function __invoke(...$args) {
// pelaksanaan
}
}
Contoh
Mari buat kelas dengan kaedah __invoke dan panggil objek sebagai fungsi:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Keputusan pelaksanaan kod:
'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);
?>
Keputusan pelaksanaan kod:
8
Contoh
Menyemak sama ada objek boleh 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));
?>
Keputusan pelaksanaan kod:
false
true
Lihat juga
-
kaedah
__construct,
yang merupakan pembina kelas -
kaedah
__toString,
yang membolehkan objek diwakilkan sebagai rentetan