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.1 Déterminer le nombre d'arguments
Comme PHP ne dispose pas de définitions de variables contraignantes,
avec validation de la syntaxe, et comme PHP propose le
nombre variable d'arguments, vous aurez parfois besoin de
savoir combien d'arguments ont été passé à votre fnoction.
Dans cette situation, vous pouvez utiliser la macro
ZEND_NUM_ARGS
. Dans les anciennes
versions de PHP, cette macro retournait le nombre d'arguments
avec lequel la fonction avait été appelée, en se basant sur
la table de hashage d'entrées (
ht
), qui est pasée
dans la liste
INTERNAL_FUNCTION_PARAMETERS
.
Comme
ht
lui-même contient le nombre d'arguments
passé à la fonction,
ZEND_NUM_ARGS
a été réduite à une macro simpliste (voyez sa définition dans le fichier
zend_API.h
). Mais c'est une bonne pratique
que de l'utiliser, pour rester compatible avec des changements
futurs dans l'interface.
Note:
L'ancien
équivalent PHP de cette macro est
ARG_COUNT
.
Le code suivant vérifie le nombre d'argument correct :
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
Si la fonction n'est pas appelée avec deux arguments, elle se termine
avec un message d'erreur. Le code ci-dessus utilise la macro
WRONG_PARAM_COUNT
, qui sert à générer un message
d'erreur standard (voyez WRONG_PARAM_COUNT en action. ).
Cette macro affiche un message d'erreur et retourne à l'appelant. Sa
définition est disponible dans le fichier
zend_API.h
et ressemble à ceci :
ZEND_API void wrong_param_count(void);
#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
Comme vous pouvez le foir, elle appelle une fonction
interne appelée
wrong_param_count
qui est
responsable de l'affichage du warning. Pour plus de détails
sur la génération de messages personnalisés, voyez la section
"Afficher des messages."
|