353 of 410 menu

Metodo __callStatic

Il metodo __callStatic è un metodo magico in PHP che viene chiamato automaticamente quando si tenta di richiamare un metodo statico inesistente o inaccessibile. Accetta come primo parametro il nome del metodo chiamato e come secondo un array degli argomenti passati.

Sintassi

public static function __callStatic(string $name, array $arguments);

Esempio

Creiamo una classe con il metodo __callStatic e proviamo a chiamare un metodo statico inesistente:

<?php class MyClass { public static function __callStatic($name, $args) { echo "Chiamato metodo statico '$name' con argomenti: "; print_r($args); } } MyClass::nonExistentMethod(1, 2, 3); ?>

Risultato dell'esecuzione del codice:

Chiamato metodo statico 'nonExistentMethod' con argomenti: [1, 2, 3]

Esempio

Implementiamo un semplice facade per creare oggetti di diversi tipi:

<?php class Factory { public static function __callStatic($name, $args) { if (strpos($name, 'create') === 0) { $className = substr($name, 6); return new $className(...$args); } throw new Exception("Method $name not found"); } } class User {} $user = Factory::createUser(); var_dump($user instanceof User); ?>

Risultato dell'esecuzione del codice:

true

Vedi anche

  • metodo __call,
    che intercetta le chiamate ai metodi inesistenti dell'oggetto
  • metodo __get,
    che intercetta l'accesso alle proprietà inesistenti
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