Ответ
Разница заключается в интерпретации содержимого строки интерпретатором PHP.
Одинарные кавычки ('): строка интерпретируется буквально. Переменные и большинство escape-последовательностей (кроме \ и ') не обрабатываются.
$name = 'Alex';
echo 'Hello, $name!n'; // Выведет: Hello, $name!n (буквально)
echo 'Path: C:\dir\file'; // Выведет: Path: C:dirfile
Двойные кавычки ("): PHP парсит строку, подставляя значения переменных и интерпретируя escape-последовательности (такие как n, t, $).
$name = 'Alex';
echo "Hello, $name!n"; // Выведет: Hello, Alex! (с переносом строки)
echo "Path: C:\dir\file"; // Выведет: Path: C:dirfile
Синтаксис для сложных переменных:
$user = ['name' => 'John'];
echo "Hello, {$user['name']}!"; // Фигурные скобки для доступа к элементу массива
Производительность: Строки в одинарных кавычках обрабатываются чуть быстрее, так как не требуют парсинга на наличие переменных. Однако на практике эта разница пренебрежимо мала. Рекомендация: используйте одинарные кавычки для простых строк и двойные — когда нужна интерполяция переменных или escape-последовательности.
Ответ 18+ 🔞
Ну, блин, вот смотри, тут история про кавычки, которая может довести до белого каления, если не понимать, в чём подвох. Разница, блядь, как между носком и перчаткой — вроде похоже, а нахуяришь не туда, и всё, пиздец.
Если ты пишешь в одинарных кавычках — ' — то для PHP это священная неизменная скрижаль. Что внутри написал, то и будет, как будто высек на камне. Переменные? Забудь. Они так и останутся текстом, как будто их зовут $name, а не Алекс. Escape-последовательности, кроме двух самых нужных (\ и '), тоже, блядь, не работают. n — это просто два символа: обратный слеш и буква 'n'. Честно, иногда это то, что надо.
$name = 'Alex';
echo 'Hello, $name!n'; // Выведет: Hello, $name!n (буквально, как есть)
echo 'Path: C:\dir\file'; // Выведет: Path: C:dirfile
А теперь, ёпта, двойные кавычки — " — это уже полный разгул демократии. Интерпретатор PHP видит их и думает: "О, сейчас я тут всё порешаю!" Он лезет внутрь, находит переменные и подставляет их значения. Видит n — делает перенос строки. Видит t — делает табуляцию. В общем, активничает, сука.
$name = 'Alex';
echo "Hello, $name!n"; // Выведет: Hello, Alex! (и тут же перенесёт строку, умница)
echo "Path: C:\dir\file"; // Выведет: Path: C:dirfile
А если у тебя там массив или какая хитрая жопа со сложным доступом, то нужно взять переменную в фигурные скобки, чтоб PHP не охуел и не съебался с ошибкой.
$user = ['name' => 'John'];
echo "Hello, {$user['name']}!"; // Вот так, красиво и понятно. Без фигурных скобок мог бы быть пиздец.
Теперь про скорость, а то все любят померить. Да, технически одинарные кавычки обрабатываются чуть быстрее, потому что интерпретатору не нужно ебаться с поиском переменных. Но, блядь, это настолько микроскопическая разница, что если твоё приложение начинает тормозить из-за выбора кавычек — у тебя проблемы, как у слона с геморроем, явно не в этом месте.
Итог, ёбана:
Используй одинарные, когда строка простая и тупая, как пробка.
Включай двойные, когда нужно вставить переменную или спецсимволы, чтобы не городить огород с конкатенацией.
И всё будет пиздато.