Fonctions de rappel / Types Callable
Les fonctions de rappel peuvent être identifiées via le type callable.
Certaines fonctions, comme call_user_func ou
usort, acceptent comme paramètre des fonctions de rappel
définies par l'utilisateur. Les fonctions de rappel peuvent être de simples
fonctions, mais aussi des méthodes d'&object;s, y compris des méthodes
statiques de classe.
Passage d'une fonction de rappel
Une fonction PHP est passée par son nom, sous forme de &string;.
Toute fonction interne ou définie par l'utilisateur peut être utilisée,
sauf les constructions de langage comme :
array, echo,
empty, eval,
exit, isset,
list, print, ou
unset.
Une méthode d'un &object; instancié est passée comme un &array; contenant
un &object; à l'index 0, et le nom de la méthode à l'index 1.
Accéder aux méthodes protégées et privées à l'intérieur d'une classe
est autorisé.
Les méthodes statiques de classe peuvent aussi être passées sans instancier
d'&object; de cette classe soit, en passant le nom de la classe au lieu d'un
&object; à l'index 0, ou en passant
'NomDeLaClasse::NomDeLaMethode'.
En dehors des fonctions définies normalement par l'utilisateur,
les fonctions anonymes et
les fonctions fléchées
peuvent aussi être utilisées comme paramètre de type callback.
À partir de PHP 8.1.0, les fonctions anonymes peuvent aussi être créées en utilisant la
syntaxe callable de première classe.
Généralement, tout objet implémentant __invoke()
peut aussi être passé au paramètre callback.
Exemples de fonctions de rappel
]]>
Exemple d'une fonction de rappel utilisant une Closure
]]>
&example.outputs;
¬e.func-callback-exceptions;