354 of 410 menu

Metoda __invoke

Magiczna metoda __invoke pozwala instancji klasy na bycie wywołaną jak funkcja. Gdy obiekt jest wywoływany jak funkcja, PHP automatycznie wywołuje tę metodę. Metoda może przyjmować parametry i zwracać wartość, jak zwykła funkcja.

Składnia

class MyClass { public function __invoke(...$args) { // implementacja } }

Przykład

Stwórzmy klasę z metodą __invoke i wywołajmy obiekt jak funkcję:

<?php class Greeter { public function __invoke($name) { return "Hello, $name!"; } } $greet = new Greeter(); echo $greet('John'); ?>

Wynik wykonania kodu:

'Hello, John!'

Przykład

Użycie __invoke z wieloma parametrami:

<?php class Calculator { public function __invoke($a, $b) { return $a + $b; } } $calc = new Calculator(); echo $calc(5, 3); ?>

Wynik wykonania kodu:

8

Przykład

Sprawdzenie, czy obiekt jest wywoływalny za pomocą is_callable:

<?php class Test {} $obj1 = new Test(); $obj2 = new class { public function __invoke() {} }; var_dump(is_callable($obj1)); var_dump(is_callable($obj2)); ?>

Wynik wykonania kodu:

false true

Zobacz też

  • metoda __construct,
    która jest konstruktorem klasy
  • metoda __toString,
    która pozwala obiektowi na bycie reprezentowanym jako ciąg znaków
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć