По сравнению с апострофами, кавычки более "либеральны". То есть, набор специальных метасимволов, которые, будучи помещены в кавычки, определяют тот или иной специальный символ, гораздо богаче. Вот некоторые из них:
r \n обозначает[В. О.31] символ новой строки;
r \r обозначает символ возврата каретки;
r \t обозначает символ табуляции;
r \$ обозначает символ $, чтобы следующий за ним текст случайно не был интерполирован, как переменная;
r \" обозначает кавычку;
r \\ обозначает обратный слэш;
r \xNN обозначает символ с шестнадцатеричным кодом NN.
Переменные в строках интерполируются. Например:
$a="Hello";
echo "$a world!"
Этот фрагмент выведет Hello world!, т. е. $a в строке была заменена на значение переменной $a (этому поспособствовал знак доллара, предваряющий любую переменную).
Давайте рассмотрим еще один пример.
$a="Hell"; // ñëîâî Hello áåç áóêâû "o"
echo "$ao world!";
Мы ожидаем, что выведется опять та же самая строка. Но задумаемся: как PHP узнает, имели ли мы в виду переменную $a или же переменную $ao? Очевидно, никак. Запустив фрагмент, убеждаемся, что он генерирует сообщение о том, что переменная $ao не определена. Как же быть? А вот как:
$a="Hell"; // ñëîâî Hello áåç áóêâû "o"
echo $a."o world!"; // îäèí ñïîñîá
echo "{$a}o world!"; // äðóãîé ñïîñîá
echo "${a}o world!"; // òðåòèé ñïîñîá!
Мы видим, что существует целых три способа преодолеть проблему. Каким из них воспользоваться — дело ваше. Мне больше нравится вариант с {$a}, хотя он и введен в PHP лишь недавно.
Последний пример показывает, что в некоторых контекстах и фигурные скобки могут трактоваться как спецсимволы.