SommaireTelecharger la documentationChapitre suivantChapitre precedent  

  .: News :.: Edito :.: Scripts :.: Forum :.: Erreurs :.: Jobs :. 
 
Sommaire

Gestion des arguments

Compter le nombre d'arguments
Lecture des arguments
L'ancienne technique de lecture des arguments (obsolète)
Cas des nombres variables de paramètres et des arguments optionnels
Accéder aux arguments
Cas des arguments passés par référence
Assurer la protection en écriture des autres paramètres

7.10.3 L'ancienne technique de lecture des arguments (obsolète)

Note
API de traitement des paramètres obsolète

Cette API est abandonnée et remplacée par la nouvelle API du moteur Zend.

Après avoir vérifié le nombre d'arguments, vous devez accéder par vous mêmes aux valeurs des arguments. Cela se fait avec l'aide de la fonction zend_get_parameters_ex:


zval **parameter;
if(zend_get_parameters_ex(1, ¶meter) != SUCCESS)
  WRONG_PARAM_COUNT;
Tous les arguments sont stockés dans une enveloppe zval, qui doit être déréférencé deux  fois. Le code ci-dessus lit un argument et le rend accessible via le pointeur parameter.

zend_get_parameters_ex accepte au moins deux arguments. Le premier argument est le nombre d'argument à lire (qui doit correspondre qui ont été utilisé lors de l'appel de la fonction; c'est pour cela qu'il est important de vérifier la syntaxe correcte). Le second argument (et tous ceux qui suivent) sont des pointeurs de pointeurs de zval. (c'est compliqué, n'est ce pas?) TOus ces pointeurs sont nécessaires car Zend travaille en interne avec des **zval; pour ajuster un **zval dans votre fonction, zend_get_parameters_ex requiert un pointeur.

La valeur retournée par zend_get_parameters_ex peut être soit SUCCESS, soit FAILURE, ce qui indiquera (sans surprise) le succès ou l'échec du traitement des arguments. Un échec est probablement liés à un nombre incorrect d'argument spécifiés, auquel cas vous devez terminer la fonction avec WRONG_PARAM_COUNT.

Pour lire plus d'un argument, vous pouvez utiliser le code suivant :


zval **param1, **param2, **param3, **param4;
     
if(zend_get_parameters_ex(4, ¶m1, &param2, ¶m3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex vérifie uniquement si vous tentez le lire plus d'arguments qu'il n'y en a. Si la fonction est appelée avec 5 paramètres, mais que vous n'en lisez que 3 avec zend_get_parameters_ex, vous n'aurez pas de message d'erreur, mais vous lirez les trois premiers paramètres uniquement. Les appels suivants à zend_get_parameters_ex ne permettront pas de lire les paramètres restants, mais exactement les mêmes paramètres.


Chapitre précédentChapitre suivantAccueil nexen.net