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.
|