SommaireTelecharger la documentationChapitre suivantChapitre precedent  

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

Améliorer PHP 4.0

Préface
Présentation
Capacités d'extensions
Disposition du code source
Le système de compilation automatique de PHP
Créer une extension
Utiliser une extension
Résolution de problèmes
Présentation des sources
Gestion des arguments
Créer des variables
Afficher des informations
Valeurs retournées

7.13 Valeurs retournées

Retourner des valeurs de vos fonctions PHP a été rapidement décrit un peu plus tôt dans cette section. Nous allons maintenant vous donner plus de détails. Les valeurs de retour sont passées via la variable return_value, qui est passée à votre fonction comme argument. L'argument return_value est constitué d'une enveloppe zval container (voir plus tôt la présentation de l'interface d'appel), que vous pouvez modifier tout à loisir. L'enveloppe elle-même est déjà alloue, et nous pouvez vous passer de la fonction MAKE_STD_ZVAL. Vous pouvez accéder directement à ses membres.

Pour faciliter le transit des valeurs de retour, et pour éviter les tracas des accès aux structures internes de l' enveloppe zval, un ensemble de macros prédéfinies est disponible (comme d'habitude). Ces macros paramètrent automagiquement le type et la valeur attendue, comme décrit dans <> et <>.

Note

Les macros de <> automatiquement termine  votre fonction en retournant la valeur. Les fonctions de <>préparent  seulement la valeur de retour. Elles ne terminent pas votre fonction.

Macros prédéfinies pour retourner des valeurs depuis une fonction

> >
Macro Description
RETURN_RESOURCE(resource) Retourne une ressource.
RETURN_BOOL(bool) Retourne un booléen.
RETURN_NULL() Retourne rien (la valeur NULL).
RETURN_LONG(long) Retourne un long.
RETURN_DOUBLE(double) Retourne un double.
RETURN_STRING(string, duplicate) Retourne une chaîne de caractères. L'option duplicate spécifie si la chaîne doit être dupliquée en utilisant estrdup.
RETURN_STRINGL(string, length, duplicate) Retourne une chaîne de caractères de la longueur spécifiée; sinon, se comporte tout comme RETURN_STRING. Cette macro est plus rapide, et compatible avec les chaînes binaires.
RETURN_EMPTY_STRING() Retourne une chaîne de caractères vide.
RETURN_FALSE Retourne le booléen FALSE.
RETURN_TRUE Retourne le booléen TRUE.
Macros prédéfinies pour préparer des valeurs dans une fonction

> >
Macro Description
RETVAL_RESOURCE(resource) Assigne la ressource comme valeur de retour.
RETVAL_BOOL(bool) Assigne le booléen comme valeur de retour.
RETVAL_NULL Assigne la valeur NULL comme valeur de retour.
RETVAL_LONG(long) Assigne le long comme valeur de retour.
RETVAL_DOUBLE(double) Assigne le long comme valeur de retour.
RETVAL_STRING(string, duplicate) Assigne la chaîne de caractères comme valeur de retour, et la duplique dans la mémoire interne de Zend si demandé (voir aussi RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) Assigne la chaîne de caractères comme valeur de retour et force sa taille à la valeur de length (voir aussi RETVAL_STRING). Cette macro est plus rapide et compatible avec les chaînes binaires. Elle est recommandée toutes les fois où vous connaissez la taille de la chaîne.
RETVAL_EMPTY_STRING Assigne la chaîne de caractères vide comme valeur de retour.
RETVAL_FALSE Assigne le booléen FALSE comme valeur de retour.
RETVAL_TRUE Assigne le booléen TRUE comme valeur de retour.

Les types complexes come les tableaux et les objets peuvent être retournés grâce aux fonctions array_init et object_init, de même que les fonctions correspondantes de hash avec return_value. Comme ces types ne sont pas créés de manière triviale, il n'y a pas de macros prédéfinies pour eux.


Chapitre précédentChapitre suivantAccueil nexen.net