В чем разница между двойными и одинарными кавычками в PHP?

Ответ

Разница заключается в интерпретации содержимого строки интерпретатором 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']}!"; // Вот так, красиво и понятно. Без фигурных скобок мог бы быть пиздец.

Теперь про скорость, а то все любят померить. Да, технически одинарные кавычки обрабатываются чуть быстрее, потому что интерпретатору не нужно ебаться с поиском переменных. Но, блядь, это настолько микроскопическая разница, что если твоё приложение начинает тормозить из-за выбора кавычек — у тебя проблемы, как у слона с геморроем, явно не в этом месте.

Итог, ёбана:
Используй одинарные, когда строка простая и тупая, как пробка.
Включай двойные, когда нужно вставить переменную или спецсимволы, чтобы не городить огород с конкатенацией.
И всё будет пиздато.