Les chaînes de caractères peuvent être définies en utilisant deux types de délimiteurs.
Si la chaîne de caractères est délimitée par des guillemets doubles ("), les variables à l'intérieur de la chaîne seront évaluées, et remplacées par leur valeur. Comme en C ou en Perl, le caractère antislash (\) est utilisé pour protéger (échapper) un caractère spécial.
Tableau 6-1. Les caractères spéciaux
séquence | valeur |
---|---|
\n | Nouvelle ligne (linefeed, LF ou 0x0A en ASCII) |
\r | Retour à la ligne(carriage return, CR ou 0x0D en ASCII) |
\t | Tabulation horizontale (HT ou 0x09 en ASCII) |
\\ | Antislash |
\$ | Caractère $ |
\" | Guillemet double |
\[0-7]{1,3} | Une séquence de caractère qui permet de rechercher un nombre en notation octale. |
\x[0-9A-Fa-f]{1,2} | Une séquence de caractère qui permet de rechercher un nombre en notation hexadécimale. |
Vous pouvez utiliser le caractère d'échappement antislash sur n'importe quel autre caractère, mais cela produira une alerte (si le niveau d'alerte maximal a été fixé). En PHP 3.0, une alerte sera affichée, si le niveau de rapport d'erreur est à E_NOTICE. En PHP 4.0, aucune alerte ne sera générée.
Le deuxième moyen de délimiter une chaîne de caractère est d'utiliser les guillemets simples ("'"). Dans une telle chaîne de caractères, les variables ne seront pas évaluées, et le caractère antislash n'aura aucun effet (à deux exceptions près, pour "\\" et "\'", afin de pouvoir utiliser les caractères guillemets simples, et antislash dans la chaîne de caractères).
Un autre moyen de délimiter les chaînes est d'utiliser la syntaxe de "Here doc" (en français, doc ici): <<<, suivi d'un identifiant arbitraire, puis de la chaîne. Cette séquence se termine par l'identifiant initial, placé en premier sur une nouvelle ligne.
L'identifiant utilisé doit suivre les mêmes règles que les étiquettes PHP : il ne doit contenir uniquement que des caractères alpha-numériques, et des soulignés ("_"), et enfin, commencer par un caractère alphabétique ou un souligné.
La syntaxe Here doc se comporte exactement comme une chaîne à guillemets doubles, sans les guillemets doubles. Cela signifie que vous n'avez pas à échapper les guillemets (simples ou doubles) dans cette syntaxe. Les variables sont remplacées par leur valeur, et le même soin doit leur être aporté que dans les chaînes à guillemets doubles.
Note : Le support Here doc a été ajouté en PHP 4.
Les chaînes peuvent être concaténées avec l'opérateur '.' (point). Notez que l'opérateur '+' (addition) ne fonctionera pas. Reportez vous à Opérateurs de chaînes pour plus d'informations.
Exemple 6-2. Quelques exemples de chaînes
|
Lorsqu'une chaîne de caractère est évaluée comme une valeur numérique, le résultat et le type de la variable sont déterminés comme suit.
La chaîne de caractères est de type "double" si elle contient un des caractère '.', 'e' ou 'E'. Sinon, elle est de type entier ("integer").
La valeur est définie par la première partie de la chaîne. Si la chaîne de caractères débute par une valeur numérique cette valeur sera celle utilisée. Sinon, la valeur sera égale à 0 (zéro).
Lorsque la première expression est une chaîne de caractères, le type de la variable dépend de la seconde expression.
<?php $foo = 1 + "10.5"; // $foo est du type double (11.5) $foo = 1 + "-1.3e3"; // $foo est du type double (-1299) $foo = 1 + "bob-1.3e3"; // $foo est du type integer (1) $foo = 1 + "bob3"; // $foo est du type integer (1) $foo = 1 + "10 Small Pigs"; // $foo est du type integer (11) $foo = 1 + "10 Little Piggies"; // $foo est du type integer (11) $foo = "10.0 pigs " + 1; // $foo est du type integer (11) $foo = "10.0 pigs " + 1.0; // $foo est du type double (11) ?> |
Pour plus d'informations sur les conversions de type, voir les pages de man à propos de la fonction strtod(3).
Si vous voulez testez l'un des exemples de cette section, vous pouvez faire un copier/coller et l'insérer dans un script pour voir comment il se comporte.
Précédent | Sommaire | Suivant |
Les nombres à virgule flottante | Niveau supérieur | Les tableaux |