Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung der Instanz der magischen Methode __call() (PHP-Tutorial für fortgeschrittene Objekte)

Ausführliche Erklärung der Instanz der magischen Methode __call() (PHP-Tutorial für fortgeschrittene Objekte)

巴扎黑
巴扎黑Original
2017-04-18 18:16:532129Durchsuche

Was ist die magische Methode __call()?

__call ist eine der magischen Methoden. Wenn das Programm eine Methode aufruft, die in der aktuellen Klasse nicht deklariert ist oder keine Aufrufberechtigung hat, wird die __call-Methode aufgerufen. Die Methode __call() enthält zwei Parameter, nämlich den Methodennamen und die Methodenparameter. Unter diesen liegen Methodenparameter in Form von Arrays vor.

Lassen Sie uns ein einfaches Beispiel geben, um allen das Verständnis zu erleichtern:

<?php
header("content-type:text/html;charset=utf-8");
class Sport{
public function run(){
echo &#39;方法存在直接调用我&#39;;
}
function __call($name, $arguments)
{
echo &#39;方法不存在调用我&#39;;
echo &#39;<br/>&#39;;
echo &#39;方法名为:&#39;. $name;
echo &#39;<br/>&#39;;
echo &#39;参数为:<pre class="brush:php;toolbar:false">&#39;;
var_dump($arguments);
}
}
$sport = new Sport();
$sport ->run();
echo &#39;<br/>&#39;;
$sport ->football(&#39;贝克汉姆&#39;,30);

Wir erstellen eine Klasse und erstellen eine Ausführungsmethode und eine magische Methode __call() in der Klasse. Als nächstes instanziieren wir das Objekt $sport und rufen zwei Methoden auf, eine ist die run()-Methode, die in der Klasse vorhanden ist, und die andere ist die football()-Methode, die nicht existiert. Sie können den Code ausführen, um die Ergebnisse anzuzeigen.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Instanz der magischen Methode __call() (PHP-Tutorial für fortgeschrittene Objekte). 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