11.5.1 Créer une fonction PHP 3
11.5 Développement PHP
11 Appendices
Manuel PHP
. Prototypes de fonctions ->Arguments de fonctions . Fonctions à nombre d'arguments variable . Utiliser les arguments d'une fonction . Gestion de la mémoire dans une fonction . Affecter une variable dans la table des symboles . Retourne une valeur simple . Retourner des valeurs complexes . Utiliser la liste des ressources . Utiliser la table des ressources persistantes. . Ajouter des directives de configuration à l'exécution
|
11.5.1.2 Arguments de fonctions
Les arguments sont toujours de type val. Ce type contient un membre de type
union, qui indique le type reél d'argument. De cette façon,
si votre fonction prend deux arguments, elle ressemble à ceci :
Argument de fonction de lecture |
pval *arg1, *arg2; if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) { WRONG_PARAM_COUNT; }
|
NOTE: Les arguments peuvent être passé par valeur ou par
référence. Dans les deux cas, vous devez passer &(pval *)
à getParameters. Si vous voulez vérifier que le n-ième
paramètre a été passé par référence
ou par valeur, vous devez utiliser la fonction
ParameterPassedByReference(ht,n). Elle retournera 1 ou 0.
Lorsque vous modifiez l'un des paramètres, qu'ils soient envoyés
par référence ou par valeur, vous pouvez le passer à
pval_destructor pour le réinitialiser, ou, s'il s'agit d'un tableau et
que vous voulez ajouter des valeurs, vous pouvez utiliser des fonctions
similaires à celles qui sont dans internal_functions.h, qui manipule
return_value comme tableau.
Par ailleurs, si vous modifiez un paramètre en IS_STRING, assurez-vous
que vous avez bien assigné un nouvelle chaîne avec estrdup()
et une nouvelle longueur de chaîne. Seulement après, vous pouvez
modifier le type en IS_STRING. Si vous modifiez une chaîne en IS_STRING
ou IS_ARRAY vous devez d'abord appeler le destructeur pval_destructor.
|