Η μέθοδος __invoke
Η μαγική μέθοδος __invoke επιτρέπει σε ένα στιγμιότυπο κλάσης να κληθεί ως συνάρτηση.
Όταν ένα αντικείμενο καλείται ως συνάρτηση, η PHP καλεί αυτόματα αυτή τη μέθοδο.
Η μέθοδος μπορεί να δέχεται παραμέτρους και να επιστρέφει τιμή, όπως μια συνηθισμένη συνάρτηση.
Σύνταξη
class MyClass {
public function __invoke(...$args) {
// υλοποίηση
}
}
Παράδειγμα
Ας δημιουργήσουμε μια κλάση με μέθοδο __invoke και ας καλέσουμε το αντικείμενο ως συνάρτηση:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Αποτέλεσμα εκτέλεσης κώδικα:
'Hello, John!'
Παράδειγμα
Χρήση του __invoke με πολλαπλές παραμέτρους:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Αποτέλεσμα εκτέλεσης κώδικα:
8
Παράδειγμα
Έλεγχος αν ένα αντικείμενο είναι callable χρησιμοποιώντας την is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Αποτέλεσμα εκτέλεσης κώδικα:
false
true
Δείτε επίσης
-
η μέθοδος
__construct,
που είναι ο κατασκευαστής της κλάσης -
η μέθοδος
__toString,
που επιτρέπει σε ένα αντικείμενο να αναπαρασταθεί ως συμβολοσειρά