Les chaînes de caractères sont des séquences de caractères de un
octet (256 caractères possibles). PHP n'a pas encore de support natif
d'Unicode.
Les chaînes de caractères sont avec les tableaux
un des types de données le plus manipulé dans les scripts.
Il faut savoir utiliser les bons guillemets (simples ou doubles)
suivant les traitements que l'on veut faire ou ne pas faire sur une
chaîne.
Il y a 3 façons pour inclure une chaîne de caractères comme valeur littérale dans un script :
Chacune des solutions différe dans la façon dont elle gére les caractères spéciaux et l'interpolation de variables.
C'est la façon la plus simple et la moins "coûteuse" pour entourer une chaîne de caractères.
Exemple :$hello = 'Bonjour tout le monde';
Pour inclure un guillemet simple dans la chaîne (apostrophe), nous devons le protéger (ou l'échapper) avec un backslash (\).
Exemple :$hello = 'Bonjour tout l\'monde';
Si un backslash doit apparaître dans la chaîne nous devons le doubler pour le protéger. Il n'est pas possible d'échapper d'autres caractères que l'apostrophe et le backslash dans une chaînes entourées de guillemets simples, et un backslash placé devant n'importe quel autre caractère sera considéré tout simplement comme un backslash.
Une chaîne de caractères peut être entourée avec des guillemets doubles.
Exemple :$hello = "Bonjour tout le monde";
La différence entre les guillemets doubles et simples est importante car dans les chaînes entourées de guillemets doubles :
Par exemple, dans le code suivant :
$prenom = 'François'; $nom = 'Piat'; $personne = "$prenom $nom";
la variable $personne contiendra la chaîne de caractère François Piat.
Les séquences d'échappement suivante sont interprétée :
La syntaxe heredoc commence par <<<, suivi d'un identifiant arbitraire, puis de la chaîne de caractères. La 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 pour le nommage des variables PHP : il ne doit contenir que des caractères alpha-numériques ou _, et commencer par un caractère alphabétique ou _.
Les séquences d'échappement sont interprétées, et les variables remplacées par leur valeur. Les guillemets simples ou doubles dans la chaîne n'ont besoin d'aucune protection particulière.
La syntaxe heredoc peut être utilisée avec facilité pour stocker des chaînes de caractères représentant du code HTML. A l'intérieur de la chaîne, le formattage éventuel du code (saut de ligne, indentation) sera gardé lors de l'affichage du code HTML dans la page résultat, rendant ainsi le code de cette page plus facilement lisible. Les guillemets (simples ou doubles) employés pour entourer les valeurs des attributs ne poseront pas de problème de protection.
La syntaxe heredoc est plus coûteuse à traiter que les autres façons d'inclure des chaînes comme valeur littérale dans les scripts. A mon avis elle doit être évitée si possible.
Toutes les syntaxes (guillemets simples ou doubles, et heredoc) permettent de mettre des sauts de lignes dans les chaînes de caractères.