Les caractères délimités par des simples quotes '
ne sont pas interprétés.
<?php
$var = 'Prix: 0.20$';
Caractères à échapper: '
.
Pour que la chaîne contienne une quote, l’échapper par un antislash \
.
Les caractères délimités par des doubles quotes "
sont interprétés : les variables et séquences d’échappement telles que \n
et \t
sont remplacés par leur valeur.
<?php
$val = 0.20;
$var = "Prix: $val\$";
Caractères à échapper: "
, $
, séquences d’échappement.
Comme pour les simples quotes, échapper les caractères par un antislash \
pour éviter qu’ils soient interprétés.
Même principe que les double quotes: les variables et séquences d’échappement sont remplacés par leur valeur, cependant il n’est pas nécessaire n’échapper les double quotes.
<?php
$var = <<<HEREDOC
text\n
HEREDOC;
<?php
$var = <<<"HEREDOC"
text\n
HEREDOC;
Il est possible de mettre n’importe quel mot-clé à la place de “HEREDOC”, pourvu qu’il soit identique au début et à la fin. Le premier “HEREDOC” doit être directement suivit d’un retour à la ligne. Le dernier “HEREDOC” doit être seul sur la ligne et directement suivit d’un point-virgule (pas de tabulation/espace ni avant ni après !):
<?php
if(true) {
$var = <<<"HEREDOC"
text\n
HEREDOC;
# Le HEREDOC fermant ne peut pas être indenté
}
Caractères à échapper: $
, séquences d’échappement
Même principe que les simple quotes, à la différence près qu’il n’est pas nécessaire d’échapper les simples quotes.
Le “NOWDOC” ouvrant est entouré de simples quotes, là où pour du heredoc on met des doubles quotes ou rien.
<?php
$var = <<<'NOWDOC'
text
NOWDOC;
Le format nowdoc obéit aux mêmes règles que heredoc, on peut utiliser n’importe quel mot-clé et il faut que les “NOWDOC” soient seuls sur la ligne.
php.net: Les chaînes de caractères
Lorsqu’une chaîne de caractères est entourée de doubles quotes "
, PHP interprète certaines séquences d’échappement en caractères spéciaux:
<?php
$var = "Hello\n";
Séq. | Caractère | Code octal | Description |
---|---|---|---|
\n |
Fin de ligne | 10 | (Line Feed) Fin de ligne Linux |
\r |
Retour chariot | 13 | (Carriage Return)\r\n (mnénotech.: return ) marque les fins de lignes Windows |
\t
| Tabulation | 9 | </tr> |
\v |
Tabulation verticale | 11 | Correspond au retour à la ligne à l'intérieur d'une cellule Excel |
\f |
Saut de page | 12 | |
\e |
Échappement CLI | 27 | Ce caractère est invisible dans un navigateur.
Lorsqu'un script PHP est exécuté dans un shell (Linux), ce caractère peut modifier l'affichage graphique, le mouvement du curseur ou même les touches du clavier.
|
\41 |
Caractère ASCII au code octal 41 | 41 | ("\41" = "!" )Lis trois chiffres au maximum. |
\x21 |
Caractère ASCII au code hexadécimal 21 | 41 | ("\x21" = "!" ) |