CALL_USER_FUNC |
Appel une fonction utilisateur |
PHP 4.0+ |
Syntaxe
function call_user_func($function,$parameter);
|
function call_user_func($function,$parameter,...);
|
Paramètres
Nom |
Description |
$function |
Ce paramètre permet d'indiquer la fonction à appeler. |
$parameter |
Ce paramètre permet d'indiquer les paramètres à utiliser pour l'appel de la fonction. |
Retour
Valeur |
Description |
FALSE |
Cette valeur permet d'indiquer que l'appel de la fonction n'a pas réussi. |
variable |
Ces valeurs permettent d'indiquer le résultat de la fonction. |
Description
Cette fonction permet d'effectuer l'appel d'une fonction définit par l'utilisateur.
Remarques
- Appel dynamique de fonctions : La fonction call_user_func permet d'appeler une fonction ou un méthode en utilisant une chaîne de caractères ou un tableau.
Cela permet une programmation plus flexible, où la fonction à appeler peut être déterminée à l'exécution, ce qui est très utile pour les systèmes de callback et de gestion
dynamique des actions.
- Support de méthodes de classe : call_user_func peut également appeler des méthodes de classe, y compris des méthodes statiques ou d'instance. Pour cela,
vous devez fournir un tableau avec l'objet ou la classe et le nom de la méthode sous forme de chaîne. Cela ouvre des possibilités pour l'appel de méthodes sur des objets créés
dynamiquement.
- Gestion des paramètres : La fonction permet de passer des paramètres à la fonction appelée. Cela donne une grande flexibilité puisqu'il n'est pas nécessaire que la
fonction cible accepte le même nombre ou type de paramètres à chaque appel. Les paramètres peuvent être passés après le nom de la fonction dans call_user_func.
- Inconvénient des performances : Bien que call_user_func soit une méthode puissante pour l'appel dynamique de fonctions, elle peut être moins performante
que l'appel direct des fonctions. En effet, PHP doit analyser les paramètres et résoudre dynamiquement le nom de la fonction à appeler, ce qui peut augmenter la complexité
d'exécution dans des applications très performantes.
- Peu adapté aux fonctions internes de PHP : Certaines fonctions internes de PHP, telles que celles pour la gestion de bases de données ou de ressources
systèmes, ne peuvent pas être appelées via call_user_func si elles nécessitent des paramètres spéciaux ou des ressources internes comme des identifiants de connexion.
- Utilisation avec des callbacks : Un cas d'utilisation typique de call_user_func est avec les callbacks. Lorsqu'une fonction prend un callback
comme paramètre (comme dans array_map ou array_filter), call_user_func permet de passer ce callback et de l'exécuter dynamiquement. Cela est
couramment utilisé dans la programmation orientée événement.
- Facilité d'extension : call_user_func est un outil précieux pour les bibliothèques et cadres d'applications cherchant à offrir des mécanismes d'extension. Par
exemple, une bibliothèque peut fournir une interface standard, et les utilisateurs peuvent appeler des fonctions personnalisées via call_user_func, ce qui permet d'étendre
facilement le comportement sans modifier le code de base.
- Gestion des erreurs : L'utilisation de call_user_func nécessite une bonne gestion des erreurs. Si la fonction ou la méthode référencée n'existe pas, PHP
émettra une erreur fatale. Il est donc essentiel de valider que la fonction ou la méthode à appeler existe avant d'utiliser call_user_func pour éviter des plantages d'exécution
imprévus.
Dernière mise à jour : Mercredi, le 25 mars 2015