352 of 410 menu

Methode __call

Die Methode __call ist eine magische Methode in PHP, die automatisch aufgerufen wird, wenn versucht wird, auf eine nicht vorhandene oder nicht zugängliche Methode einer Klasse zuzugreifen. Als ersten Parameter erwartet sie den Namen der aufgerufenen Methode, als zweiten - ein Array von Argumenten.

Syntax

public function __call(string $name, array $arguments) { // Implementierung }

Beispiel

Erstellen wir eine Klasse mit der Methode __call, die alle Aufrufe nicht vorhandener Methoden abfangen wird:

<?php class Test { public function __call($name, $args) { echo "Aufgerufene Methode: " . $name . "\n"; echo "Argumente: "; print_r($args); } } $test = new Test(); $test->nonExistentMethod('a', 'b', 123); ?>

Ergebnis der Codeausführung:

Aufgerufene Methode: nonExistentMethod Argumente: ['a', 'b', 123]

Beispiel

Implementieren wir einen einfachen Methodendelegator mit Hilfe von __call:

<?php class Calculator { public function add($a, $b) { return $a + $b; } } class Math { private $calculator; public function __construct() { $this->calculator = new Calculator(); } public function __call($name, $args) { if (method_exists($this->calculator, $name)) { return call_user_func_array( [$this->calculator, $name], $args ); } throw new Exception("Methode $name nicht gefunden"); } } $math = new Math(); echo $math->add(2, 3); ?>

Ergebnis der Codeausführung:

5

Siehe auch

  • die Methode __callStatic,
    die Aufrufe statischer Methoden abfängt
  • die Methode __get,
    die Zugriffe auf nicht vorhandene Eigenschaften abfängt
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen