9.4.1 Créer une fonction PHP
9.4 Étendre PHP 3
9 PHP et le moteur interne Zend
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 . Utilisation de la liste des ressources . Utilisation de la table des ressources persistantes . Ajouter des directives de configuration à l'exécution
|
9.4.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.
-
Éventuellement, 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 réel
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)
- 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
|