Déterminer le nombre d'arguments <<< |
Lire les arguments | Ancienen méthode de lecture des arguments (obsolète) >>> |
8.9 Gestion des arguments 8 Développer PHP 4.0 Manuel PHP . Déterminer le nombre d'arguments ->Lire les arguments . Ancienen méthode de lecture des arguments (obsolète) . Traitement des nombres d'arguments variables et des paramètres optionnels . Accéder aux arguments . Traiter les arguments passés par référence . Assurer les autres paramètres contre l'écriture |
8.9.2 Lire les arguments
Analyser les paramètres est une tâche très commune et qui devient laborieuse. Il serait aussi bien de disposer d'un système de validation standardisé, et des messages d'erreurs commun. Depuis PHP 4.1.0, il existe une nouvelle API qui comble ce manque. Elle simplifie grandement le processus de reception des paramètres, mais elle ne peut être utilisée pour des fonctions qui acceptent un nombre variable d'arguments. Mais comme la vaste majorité des fonctions a un nombre d'arguments fixe, cette API est recommandée comme nouveau standard. Le prototype de la fonction d'analyse des paramètres ressemble a ceci :
Le premier argument de cette fonction est le nombre réel de
paramètres de votre fonction, et la macro
ZEND_NUM_ARGS()
pourra être utilisée pour cela. Le deuxième paramètre
doit toujours être la macro
TSRMLS_CC
. Le troisième
argument est une chaine qui spécifie le nombre et le type des arguments
attendus par votre fonction, dans un format qui est proche de celui
utiliés par printf. Et finalement, le reste des arguments sont des
pointeurs vers les variables qui recevront les valeurs de ces paramètres.
zend_parse_parameters effectue des conversions de type lorsque c'est possible, ce qui fait que vous devriez recevoir les données dans le format que vous avez demandé. Tous les types de scalaires peuvent etre convertit dans un autre type de scalaire, mais les conversions entre les types complexes (tableaux, objets, ressources..) et les types scalaires ne sont pas permis. SI les paramètres ont pu être obtenu et qu'il n'y a pas eu d'erreur durant le traitement, la fonction retourne SUCCESS , et sinon FAILURE . La fonction affichera des messages d'erreurs informatifs, si le nombre de paramètres ne correspond pas au nombre attendu, ou si les conversions de types ont échoué.
Voici quelques exemples de messages d'erreurs :
Voici la liste complèete des spécificateurs de type :
La meilleure méthode pour illustrer l'utilisation de ces fonctions est de voir un exemple :
Notez que dans le dernier exemple, nous utilisons 3 comme nombre d'arguments reçus et non pas zend_num_args . Ce que cela nous permet est de recevoir le nombre minimum de paramètres que notre fonction attend. Bien sur, si vous souhaites utiliser les autres paramètres, vous devrez utiliser la fonction zend_get_parameters_array_ex pour les obtenir. La fonction d'analyse des paramètres dispose d'une version plus puissante, qui vous permet de passer des options qui contrôle son comportement.
Actuellement, la seule option utilisable est ZEND_PARSE_PARAMS_QUIET , qui commande à la fonction de ne pas afficher de messages d'erreur durant son exécution. Cela peut être utile pour des fonctions qui attendent différents ensembles d'arguments très différents, mais, d'un autre coté, vous devrez afficher vous même les erreurs. Par exemple, voici commme vous pourriez attendre soit trois entiers, soit une chaîne de caractères.
Avec toutes les méthodes sus-cités de reception des paramètres, vous devriez avoir une bonne visibilité sur le processus. Pour d'autres exemples, fouillez donc le code source de PHP, et les extensions qui sont fournies avec PHP : ce sont d'excellentes illustrations. |
<< | Lire les arguments | >> |
Déterminer le nombre d'arguments | Gestion des arguments | Ancienen méthode de lecture des arguments (obsolète) |