Avatar ·

Quelle est la différence entre les chaînes entre guillemets simples et doubles en PHP ?

Différence principale : interpolation des variables et séquences d'échappement

Vous avez tout à fait raison. La principale différence entre les guillemets simples et doubles en PHP est que les guillemets doubles interprètent les variables et les séquences d'échappement spéciales, alors que les guillemets simples les traitent comme du texte littéral.

Avec des guillemets simples 'exemple', tout ce qui se trouve entre eux est considéré comme une chaîne littérale, à l'exception de \' (guillemet simple échappé) et \\ (barre oblique inverse échappée). Ainsi, $name n'est pas interprété, et les séquences comme \n sont affichées telles quelles.

Avec des guillemets doubles "exemple", PHP analyse la chaîne pour y trouver des variables à interpoler (comme $name ou {$name}) et des séquences d'échappement spéciales (comme \n pour une nouvelle ligne, \t pour une tabulation, \\ pour une barre oblique inverse, \" pour un guillemet double littéral, etc.). C'est pourquoi echo "Привет, $name"; affiche Привет, Иван.

Exemple avec \n :

echo 'Ligne1\nLigne2'; // Affiche : Ligne1\nLigne2 (littéral)
echo "Ligne1\nLigne2"; // Affiche :
// Ligne1
// Ligne2 (saut de ligne réel)

En résumé :

  • Guillemets simples : rapides et simples, aucune interpolation, interprètent seulement \\ et \'.
  • Guillemets doubles : plus lents (car ils analysent le contenu) mais permettent l'interpolation des variables et les séquences d'échappement étendues.

J'espère que cela clarifie votre doute. N'hésitez pas si vous avez d'autres questions !