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:12:591170Durchsuche

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:

etwas Rückruf durchführen

Wir können jedoch 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 vorhandene Methode

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

Nach der Ausführung wird eine Fehlermeldung angezeigt: TypeError: Argument 1 übergeben an dosth( ) 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.

Das Obige ist die Methode, die Ihnen der Editor für PHP Callable vorstellt, um den Rückruftyp zwangsweise anzugeben. Wenn Sie Fragen haben, hinterlassen Sie mir und dem Editor bitte eine Nachricht Ich werde 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