Heim  >  Artikel  >  Backend-Entwicklung  >  PHP Callable zwingt die Methode, den Rückruftyp anzugeben

PHP Callable zwingt die Methode, den Rückruftyp anzugeben

高洛峰
高洛峰Original
2016-12-30 14:09:221238Durchsuche

Wenn eine Methode eine Rückrufmethode als Parameter akzeptieren muss, können wir so schreiben:

<?php
function dosth($callback){
call_user_func($callback);
}
function callback(){
echo &#39;do sth callback&#39;;
}
dosth(&#39;callback&#39;);
?>

Ausgabe:

etw zurückrufen

Aber wir können nicht sicher sein, ob die Rückrufmethode aufgerufen werden kann, daher müssen wir viel zusätzliche Arbeit leisten, um zu überprüfen, ob die Rückrufmethode aufgerufen werden kann.

Gibt es eine bessere Möglichkeit, festzustellen, ob die Callback-Methode aufrufbar ist?
Wir können Callable verwenden, um zu erzwingen, dass der Parameter ein Callback-Typ ist, wodurch sichergestellt wird, dass die Callback-Methode aufrufbar sein muss.

Zum Beispiel ist die Callback-Methode eine nicht existierende Methode

<?php
function dosth(callable $callback){
call_user_func($callback);
}
dosth(&#39;abc&#39;);
?>

Nach der Ausführung wird eine Fehlermeldung angezeigt: TypeError: Das an dosth() übergebene Argument 1 muss aufrufbar sein
Das Programm kann die interne Verarbeitung von dosth nicht ausführen. Der Parametertyp wurde zum Schutz überprüft und verarbeitet.

Und wenn das Callable entfernt wird

<?php
function dosth($callback){
call_user_func($callback);
}
dosth(&#39;abc&#39;);
?>

Nach der Ausführung wird eine Warnung angezeigt: Warnung: call_user_func() erwartet Parameter 1 bis sei ein gültiger Rückruf, die Funktion „abc“ wurde nicht gefunden oder der Funktionsname ist ungültig

Das Programm kann die interne Verarbeitung von dosth ausführen, daher muss viel zusätzliche Arbeit geleistet werden, um zu überprüfen, ob die Rückrufmethode funktioniert aufgerufen werden kann.

Wenn der Parameter der Methode eine Rückrufmethode ist, sollte daher Callable hinzugefügt werden, um die Angabe als Rückruftyp zu erzwingen. Dies kann Aufruffehler reduzieren und die Qualität des Programms verbessern.

Die oben genannte Methode stellt Ihnen vor, wie Sie den Rückruftyp in PHP Callable erzwingen können. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere Artikel darüber, wie PHP Callable die Angabe des Rückruftyps erzwingt, finden Sie auf der chinesischen PHP-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