Services webmasters
Partenaires
Jeux concours gratuits
 
Les nombres à virgules flottantes (Doubles, Floats)
<<<
Chaînes de caractères (strings) Booléens
>>>

8.10 Créer des variables
8 Développer PHP 4.0
 Manuel PHP

Présentation
Entiers (Longs)
Les nombres à virgules flottantes (Doubles, Floats)
->Chaînes de caractères (strings)
Booléens
Tableaux
Objets
Ressources
Macros de création automatique de variables globales
Créations de constantes

8.10.4 Chaînes de caractères (strings)

Les chaînes de caractères (appelées aussi des strings) demandent quelques efforts supplémentaires. Comme mentionné auparavant, toutes les chaînes de caractères seront associées avec une structure de données interne à Zend qui a besoin d'être allouée avec les fonctions de gestion de mémoire de Zend. Le référencement de données statiques, et celui de données référencées avec des routines standards ne sont pas autorisées. Pour assigner une chaîne, vous devez utiliser le membre str dans le champs zval.value . Le type corresopndant est IS_STRING :


zval *new_string;
char *string_contents = "Ceci est une nouvelle chaîne";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Notez bien l'utilisation estrdup . Bien sur, vous pouvez aussi utiliser la macro prédéfinie ZVAL_STRING :

zval *new_string;
char *string_contents = "Ceci est une nouvelle chaîne";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepte un troisième argument qui indique si la chaîne fournie doit être dupliquée (en utilisant estrdup ). En donnant la valeur de 1 à ce paramètre, la chaîne sera dupliquée. 0 fera simplement usage du pointeur fourni pour référer le contenu. C'est très pratique si vous souhaitez créer une nouvelle variable qui fait référence à une chaîne qui existe déjà en mémoire Zend.

Si vous voulez tronquer la chaîne à une taille, ou que vous connaissez déjà la taille de la chaîne, utilisez donc la macro ZVAL_STRINGL(zval, string, length, duplicate) , qui accepte une taille de chaîne explicite. Cette macro est bien plus rapide que ZVAL_STRING tout en supportant les chaînes binaires.

Pour créer une chaîne vide, donner à votre chaîne la taille de 0 et utilisez empty_string comme contenu :


new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Bien sur, il y a aussi une macro pour cela : ZVAL_EMPTY_STRING ).

MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

<< Chaînes de caractères (strings) >>
Les nombres à virgules flottantes (Doubles, Floats) Créer des variables Booléens
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -