La déclaration des chaînes de caractères est encadrée par des guillemets. Le PHP
accepte deux syntaxes, les guillemets simples ('
) et les guillemets doubles ("
).
Toutefois, ces deux syntaxes ne sont pas identiques.
L'utilisation des guillemets simples est la syntaxe élémentaire pour déclarer une chaîne.
Mais attention, la chaîne sera enregistrée telle quelle, c'est à dire que les
caractères spéciaux (comme le retour chariot \n
) ne seront pas échappés (interprétés) et
seront composés de deux caractères : un antislash \
suivi du caractère n
.
Le seul caractère pouvant être échappé est l'apostrophe avec la syntaxe \'
.
Les guillemets doubles permettent l'échappement des caractères spéciaux et surtout
l'interprétation des variables. Si une variable est présente dans la chaîne de caractères,
elle sera remplacée par sa valeur. De même, si des caractères spéciaux
(\n
, \r
, \$
, ...) sont présents dans la chaîne,
ils seront remplacés par leur code ASCII.
Notons que les tableaux peuvent être parsés directement lorsqu'ils sont entre guillemets doubles, mais ils doivent être échappés grâce à des accolades comme sur l'exemple suivant.
Cet exemple montre les différences entre les deux syntaxes :
<?php
$variable = 4;
$table = array (10,20,30);
// Display $variable (single quotes)
echo 'Variable: $variable\n';
// Display 4 (double quotes)
echo "Variable: $variable\n";
// Display 20 (table with double quotes and curly brackets)
echo "Table: {$table[1]}\n";
?>
Remarquez comment le premier retour chariot est affiché : il n'est pas échappé.
La question du choix d'une syntaxe se pose. La règle que je préconise est d'utiliser au maximum les guillemets simples car les guillemets doubles sont plus longs à analyser à cause de l'interprétation des variables et des caractères spéciaux.
Considérons le code suivant qui déclare une variable $a
. Le but de cet exercice
est d'afficher la valeur de $a
de différentes façons :
$a
avec des guillemets simples (utilisez la concaténation et PHP_EOL)$a
avec des guillemets doubles$a
en dehors du script PHP (utilisez les balises courtes)<pre>
<?php
$a = 1234.56;
// Display a=1234.56 using single quotes
// Display a=1234.56 using double quotes
?>
<!-- Display a=1324.56 outside PHP script -->
</pre>
Voici le résultat escompté :
Quelle(s) syntaxe(s) permet(tent) de déclarer une chaîne de caractères en PHP ?
On suppose la déclaration suivante, quelle(s) instruction(s) permet(tent) d'afficher "a = 5" ?
$a = 5;
On suppose la déclaration suivante, quelle(s) instruction(s) permet(tent) d'afficher "$a = 5" ?
$a = 5;
Quelle(s) syntaxe(s) permet(tent) de créer une chaîne de caractère avec un retour à la ligne ?