12.6.1 Créer une fonction PHP 3
12.6 Développement PHP
12 Annexes
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
|
12.6.1.8 Retourner des valeurs complexes
Votre fonction peut aussi retourner des valeurs complexes, tels que des objets ou
tableaux.
Retourner un objet :
-
Appeler object_init(return_value).
-
Remplissez les valeurs. Les fonctions utilisables sont listées ci
dessous.
-
Eventuellement, enregistrez les fonctions pour cet objet.
Afin de lire des valeurs de cet objet, la fonction doit lire dans "this",
dans la table de symbole active active_symbol_table. Son type doit être
IS_OBJECT, et c'est une table de hash basique. (i.e., vous pouvez utiliser
les fonctions habituelles de .value.ht). L'enregistrement reél
peut être fait comme suit :
add_method( return_value, function_name, function_ptr );
Les fonctions d'accès aux objets sont :
-
add_property_long( return_value, property_name, l )
- Ajoute un membre nommé 'property_name', de type long,
égal à 'l'
-
add_property_double( return_value, property_name, d )
- Idem, ajoute un double
-
add_property_string( return_value, property_name, str )
- Idem, ajoute une chaîne
-
add_property_stringl( return_value, property_name, str, l )
- Idem, ajoute une chaîne de longueur 'l'.
Retournez un tableau :
-
Appelez array_init(return_value).
-
Remplissez les valeurs. Les fonctions disponibles sont listées
ci-dessous.
Les fonctions utilisées pour accéder à un tableau sont :
- add_assoc_long(return_value,key,l) - Ajoute une entrée
associative avec la clé 'key' et la valeur 'l', de type long
- add_assoc_double(return_value,key,d) - Ajoute une entrée
associative avec la clé 'key' et la valeur 'l', de type double
- add_assoc_string(return_value,key,str,duplicate)
- add_assoc_stringl(return_value,key,str,length,duplicate)
spécifie la taille d'une chaîne
- add_index_long(return_value,index,l) - Ajoute
une entrée d'index index' avec la valeur 'l', de type long
- add_index_double(return_value,index,d)
- add_index_string(return_value,index,str)
- add_index_stringl(return_value,index,str,length)
- spécifie la longueur de la chaîne.
- add_next_index_long(return_value,l) - ajoute une entrée tableau,
dans le prochain offset libre, de longueur 'l', de type long
- add_next_index_double(return_value,d)
- add_next_index_string(return_value,str)
- add_next_index_stringl(return_value,str,length)
- spécifie la taille d'une chaîne
|