mixed indique qu'un paramètre accepte
plusieurs types, mais pas forcément tous les types.
gettype() par exemple, accepte tous les types de variables
PHP, mais str_replace() n'accepte que des
chaînes de caractères et des tableaux.
Certaines fonctions comme call_user_function()
ou usort() acceptent une fonction définie par
l'utilisateur comme fonction de callback. Les fonctions de
callback peuvent être des fonctions simples, mais aussi des
objets ou des méthodes statiques de classes.
Une fonction PHP est passée simplement en indiquant son nom, sous
forme de chaîne de caractères. Vous pouvez passer une fonction
intégrée au langage ou une fonction définie par vos soins, Ã
l'exception de
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() et
unset().
Une méthode d'un objet instancié est passée sous forme de tableau,
contenant un objet comme élément d'index 0 et un nom de méthode comme
élément 1.
Les méthodes statiques de classe peuvent aussi être passées dans l'objet
instancié, mais en passant le nom de la classe comme valeur de
l'index 0.
À part les fonctions communes définies par l'utilisateur,
create_function() peut être utilisée pour créer
une fonction anonyme de callback.
Exemple 11-45. Exemple de fonction de callback
<?php // Exemple de fonction de callback function ma_fonction_callback() { echo 'Bonjour le monde!'; }
// Exemple de méthode de callback class MaClasse { function MaMethodeCallback() { echo 'Bonjour le monde!'; } }
// Type 1: Callback simple call_user_func('ma_fonction_callback');
// Type 2: Appel d'une méthode statique de la classe call_user_func(array('MyClass', 'MaMethodeCallback'));
// Type 3: Appel d'une méthode objet $obj = new MaClasse(); call_user_func(array(&$obj, 'MaMethodeCallback')); ?>
|
|