Si une méthode doit accepter une méthode de rappel comme paramètre, nous pouvons écrire comme ceci
<?php function dosth($callback){ call_user_func($callback); } function callback(){ echo 'do sth callback'; } dosth('callback'); ?>
Sortie :
faire quelque chose de rappel
Mais nous ne pouvons pas être sûrs que la méthode de rappel peut être appelée, nous devons donc faire beaucoup de travail supplémentaire pour vérifier si la méthode de rappel peut être appelée.
Existe-t-il un meilleur moyen de déterminer si la méthode de rappel est appelable ?
Nous pouvons utiliser callable pour forcer le paramètre à être un type de rappel, ce qui garantit que la méthode de rappel doit être appelable.
Par exemple, la méthode de rappel est une méthode inexistante
<?php function dosth(callable $callback){ call_user_func($callback); } dosth('abc'); ?>
Après exécution, un message d'erreur s'affiche : TypeError : L'argument 1 passé à dosth () doit être appelable
Le programme ne peut pas exécuter le traitement interne de dosth Le type de paramètre a été vérifié et traité pour la protection.
Et si le callable est supprimé
<?php function dosth($callback){ call_user_func($callback); } dosth('abc'); ?>
Après l'exécution, un avertissement s'affiche : Attention : call_user_func() attend que le paramètre 1 soit être un rappel valide, la fonction 'abc' est introuvable ou un nom de fonction invalide
Le programme peut exécuter le traitement interne de dosth, donc beaucoup de travail supplémentaire doit être effectué pour vérifier si la méthode de rappel peut être appelé.
Par conséquent, si le paramètre de la méthode est une méthode de rappel, callable doit être ajouté pour forcer sa spécification comme type de rappel. Cela peut réduire les erreurs d'appel et améliorer la qualité du programme.
Ce qui précède est la méthode que l'éditeur vous présente pour savoir comment spécifier de manière forcée le type de rappel dans PHP Callable. J'espère que cela vous sera utile. Si vous avez des questions, laissez-moi un message et. l'éditeur vous répondra à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !
Pour plus d'articles sur la façon dont PHP Callable force la spécification du type de rappel, veuillez faire attention au site Web PHP chinois !