354 of 410 menu

Il metodo __invoke

Il metodo magico __invoke permette a un'istanza di una classe di essere chiamata come una funzione. Quando un oggetto viene invocato come una funzione, PHP chiama automaticamente questo metodo. Il metodo può accettare parametri e restituire un valore, proprio come una funzione normale.

Sintassi

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

Esempio

Creiamo una classe con il metodo __invoke e chiamiamo l'oggetto come una funzione:

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

Risultato dell'esecuzione del codice:

'Hello, John!'

Esempio

Utilizzo di __invoke con più parametri:

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

Risultato dell'esecuzione del codice:

8

Esempio

Verifica se un oggetto è richiamabile utilizzando is_callable:

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

Risultato dell'esecuzione del codice:

false true

Vedi anche

  • il metodo __construct,
    che è il costruttore della classe
  • il metodo __toString,
    che permette all'oggetto di essere rappresentato come una stringa
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta