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 :
Notez bien l'utilisation
estrdup
.
Bien sur, vous pouvez aussi utiliser la macro prédéfinie
ZVAL_STRING
:
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 :
Bien sur, il y a aussi une macro pour cela :
ZVAL_EMPTY_STRING
).
|
<< | Chaînes de caractères (strings) | >> |
Les nombres à virgules flottantes (Doubles, Floats) | Créer des variables | Booléens |