Одно из главных отличий одинарных и двойных кавычек - возможность обрабатывать переменные внутри строки.
Давайте рассмотрим пример:
<?php
$name = 'Иван';
$str1 = 'Привет, меня зовут $name';
$str2 = "Привет, меня зовут $name";
У нас есть две строки, которые отличаются только окружающими их кавычками, но содержание этих двух переменных будет разным.
<?php
$name = 'Иван';
// На экран будет выведено Привет, меня зовут $name
echo 'Привет, меня зовут $name';
// На экран будет выведено Привет, меня зовут Иван
echo "Привет, меня зовут $name";
В случае с двойными кавычками вместо переменной $name будет подставлено значение самой переменной, а в случае с одинармыми - нет.
Такой механизм подстановки переменных внутри строки и называется интерполяцией.
Давайте рассмотрим ситуацию, когда нам необходимо вывести внутри строки с двойными кавычками знак $ или "(двойная кавычка)
<?php
// Пример экранирования строки
$str = "В этой строке мы экранируем \" двойную кавычку.";
// Еще один пример
$str2 = "А в этой стоке мы экранируем знак \$";
$str3 = "Еще пример экранирования \"\$\"";
Что делать, если нужно подставить переменную, а она сливается с текстом?
В этом случае будем использовать символы {}
<?php
$name = "значение переменной";
$str = "Какаойто текст, которы сливается с переменной name{$name}";