__invoke მეთოდი
მაგიური მეთოდი __invoke საშუალებას აძლევს კლასის ეგზემპლარს გამოიძახოს როგორც ფუნქცია.
როდესაც ობიექტი გამოიძახება როგორც ფუნქცია, PHP ავტომატურად იძახებს ამ მეთოდს.
მეთოდს შეუძლია მიიღოს პარამეტრები და დააბრუნოს მნიშვნელობა, როგორც ჩვეულებრივი ფუნქცია.
სინტაქსი
class MyClass {
public function __invoke(...$args) {
// რეალიზაცია
}
}
მაგალითი
შევქმნათ კლასი __invoke მეთოდით და გამოვიძახოთ ობიექტი როგორც ფუნქცია:
<?php
class Greeter {
public function __invoke($name) {
return "გამარჯობა, $name!";
}
}
$greet = new Greeter();
echo $greet('გიორგი');
?>
კოდის შესრულების შედეგი:
'გამარჯობა, გიორგი!'
მაგალითი
__invoke-ის გამოყენება რამდენიმე პარამეტრით:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
კოდის შესრულების შედეგი:
8
მაგალითი
ობიექტის გამოძახების შესაძლებლობის შემოწმება 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,
რომელიც საშუალებას აძლევს ობიექტს იყოს წარმოდგენილი სტრიქონის სახით