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,
    който позволява на обекта да бъде представен като низ
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне