CALLABLE |
Appelable |
PHP 5.4+ |
Syntaxe
function nomfonction(Callable $parametre)
|
Paramètres
Nom |
Description |
nomfonction |
Ce paramètre permet d'indiquer un nom de fonction. |
$parametre |
Ce paramètre permet d'indiquer un paramètre pouvant être appelé. |
Description
Ce mot réservé permet d'indiquer un type de données passer comme paramètre pouvant être appelé comme une fonction.
Remarques
- Type hint pour des fonctions ou des objets invocables : Le mot-clef callable est utilisé comme type hint pour indiquer qu'un paramètre ou une valeur
retournée doit être une fonction ou un objet invocable. Cela garantit qu'une fonction ou une méthode attend effectivement un type compatible avec une exécution via
call_user_func().
- Prise en charge des types de fonctions variés : Une variable marquée comme callable peut être : Une fonction anonyme (closure),
Une fonction définie par son nom sous forme de chaîne ('functionName'), un tableau avec une classe et une méthode ([ClassName::class, 'methodName']), un objet ayant la méthode
magique __invoke().
- Vérification des arguments à l'exécution : Si une variable déclarée comme callable n'est pas réellement une fonction ou un objet invocable, PHP génère
une erreur de type. Cela offre une couche supplémentaire de sécurité dans le code en vérifiant les entrées de manière stricte.
- Utilisation dans les fonctions de rappel (callbacks) : Le type callable est souvent utilisé pour définir des callbacks dans des fonctions nécessitant une
logique personnalisée.
- Support des objets invocables : Les objets invocables (ceux qui définissent une méthode magique __invoke()) peuvent également être utilisés comme des callable.
Cela permet de combiner des fonctions et des comportements orientés objet.
- Vérification avec is_callable() : La fonction native is_callable() permet de vérifier si une variable est effectivement une callable.
- Limitation avec des méthodes protégées ou privées : Bien que callable puisse inclure des méthodes de classe, une méthode protégée ou privée ne sera pas
exécutée lorsqu'elle est appelée via une callable. Ces méthodes doivent être explicitement accessibles pour être utilisées dans ce contexte.
- Amélioration de la lisibilité et de la robustesse du code : En spécifiant explicitement qu'un paramètre est de type callable, le code devient plus lisible
et plus robuste. Les développeurs peuvent identifier clairement les intentions et s'assurer que seules des fonctions ou des objets valides seront utilisés dans les fonctions
ou les méthodes acceptant ce type.
Dernière mise à jour : Vendredi, le 5 janvier 2018