Heim > Artikel > Backend-Entwicklung > PHP Callable zwingt die Methode, den Rückruftyp anzugeben
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 'do sth callback'; } dosth('callback'); ?>
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('abc'); ?>
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('abc'); ?>
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!