Avatar ·

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

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

Bonjour à tous ! Je viens de commencer à apprendre PHP et j'ai rencontré quelque chose que je ne comprends pas. Je vois que les chaînes peuvent être déclarées avec des guillemets simples ('exemple') ou des guillemets doubles ("exemple"). Apparemment, le résultat est le même — une chaîne dans les deux cas. Mais j'ai remarqué un comportement étrange.

Voici un exemple de code :

$name = "Иван";
echo 'Привет, $name!';  // Affiche : Привет, $name!
echo "Привет, $name!";  // Affiche : Привет, Иван!

Pourquoi dans le premier cas affiche-t-il littéralement $name, et dans le second la valeur de la variable ? Est-ce lié à l'échappement ? J'ai essayé d'écrire echo 'Привет, \n'; — cela a affiché simplement \n, pas un saut de ligne. Avec les guillemets doubles, \n fonctionne comme un saut de ligne.

Expliquez-moi, s'il vous plaît, quelle est la différence fondamentale entre ces deux types de chaînes ? Quand utiliser l'un ou l'autre ? Y a-t-il une différence de performance ? Et qu'en est-il de heredoc et nowdoc — est-ce aussi lié ?

Merci d'avance pour votre aide !