Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
354 of 410 menu

Метад __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

Прыклад

Праверка, ці з'яўляецца аб'ект выклікальным з дапамогай 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,
    якая дазваляе аб'екту быць прадстаўленым у выглядзе радка
byenru