Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie __call() in PHP

So verwenden Sie __call() in PHP

墨辰丷
墨辰丷Original
2018-05-16 14:35:303308Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von __call() in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

PHP5-Objekte verfügen über eine neue spezielle Methode __call(), die zur Überwachung anderer Methoden in einem Objekt verwendet wird. Wenn Sie versuchen, eine Methode aufzurufen, die nicht in einem Objekt vorhanden ist oder berechtigungsgesteuert ist, wird die Methode __call automatisch aufgerufen.

Beispiel 1: __call

<?php  
class foo {  
  function __call($name,$arguments) {  
    print("Did you call me? I&#39;m $name!");  
  }  
} $x = new foo();  
$x->doStuff();  
$x->fancy_stuff();  
?>

Diese spezielle Methode kann verwendet werden, um die Aktion „Überladen“ in JAVA zu implementieren, sodass Sie Ihre Parameter überprüfen und Parameter übergeben können, indem Sie eine private aufrufen Verfahren.

Beispiel 2: Verwenden Sie __call, um die Aktion „Überlastung“ zu implementieren

<?php  
class Magic {  
  function __call($name,$arguments) {  
    if($name==&#39;foo&#39;) {  
  if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);  
  if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);  
    }  
  }   private function foo_for_int($x) {  
    print("oh an int!");  
  }   private function foo_for_string($x) {  
    print("oh a string!");  
  }  
} $x = new Magic();  
$x->foo(3);  
$x->foo("3");  
?>

Zitiert aus:

Die beiden Funktionen _call und ___callStatic sind die Standardfunktionen von PHP Klasse.

__call() Wenn im Kontext eines Objekts auf die aufgerufene Methode nicht zugegriffen werden kann, wird sie ausgelöst.

__callStatic() In einem statischen Kontext, wenn auf die aufgerufene Methode nicht zugegriffen werden kann zugänglich, Es wird ausgelöst. ) am

Das obige ist der detaillierte Inhalt vonSo verwenden Sie __call() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn