Cours 3.6. Les guillemets en PHP

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.

Les guillemets simples

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

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.

Exemple

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é.

Guillemets simples ou doubles ?

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.

Exercice

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 :

<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é :

Expected result for the PHP quote exercice

Quiz

Quelle(s) syntaxe(s) permet(tent) de déclarer une chaîne de caractères en PHP ?

Vérifier Bravo ! Le PHP accepte deux syntaxes pour les chaînes de caratcères : les guillemets simples ou doubles. Essaie encore ...

On suppose la déclaration suivante, quelle(s) instruction(s) permet(tent) d'afficher "a = 5" ?

$a = 5;
Vérifier Bravo ! En PHP, pour afficher une variable, soit on utilise la concaténation, soit on met des guillemets doubles. Essaie encore ...

On suppose la déclaration suivante, quelle(s) instruction(s) permet(tent) d'afficher "$a = 5" ?

$a = 5;
Vérifier Bravo ! Les guillemets doubles interprètent les variables. Essaie encore ...

Quelle(s) syntaxe(s) permet(tent) de créer une chaîne de caractère avec un retour à la ligne ?

Vérifier Bravo ! Il faut nécessairement utiliser des guillemets doubles pour les caractères spéciaux. Notons que PHP_EOL est une constante qui contient un retour à la ligne compatible avec tous les systèmes. Essaie encore ...

Voir aussi


Dernière mise à jour : 31/03/2021