← Назад к вопросам
В чем разница между двойными ("") и одинарными ('') кавычками?
1.0 Junior🔥 121 комментариев
#PHP Core
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Двойные кавычки vs одинарные в PHP
Двойные кавычки обрабатывают переменные и escape-последовательности. Одинарные кавычки — это просто литеральная строка.
Основная разница
$name = "John";
// Двойные кавычки: переменные интерпретируются
echo "Hello, $name!"; // Выведет: Hello, John!
echo "Line 1\nLine 2"; // Выведет две строки
// Одинарные кавычки: всё как есть
echo 'Hello, $name!'; // Выведет: Hello, $name!
echo 'Line 1\nLine 2'; // Выведет: Line 1\nLine 2 (буквально!)
Escape-последовательности
// Двойные кавычки
"\n" → символ новой строки
"\t" → табуляция
"\\" → обратный слэш
"\$" → доллар
// Одинарные кавычки
'\n' → буквально: \n (два символа)
'\t' → буквально: \t (два символа)
'\\' → один обратный слэш
'\$' → буквально: \$ (два символа)
Переменные и выражения
$count = 5;
// Двойные: работают переменные
echo "Items: $count"; // Items: 5
echo "Total: {$count * 2}"; // Total: 10
echo "User: {$user->name}"; // User: John
// Одинарные: нет переменных
echo 'Items: $count'; // Items: $count
echo 'Total: {$count * 2}'; // Total: {$count * 2}
Производительность
Одинарные кавычки немного быстрее (нет обработки переменных), но разница минимальна в modern PHP.
// Микроскопическая разница
$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
$x = 'single quotes';
}
$single = microtime(true) - $start;
$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
$x = "double quotes";
}
$double = microtime(true) - $start;
// Разница ~5% (не значительна)
Best Practices
// Используй одинарные когда нет переменных
$message = 'Error: File not found';
$path = 'C:\\Users\\John\\file.txt';
// Используй двойные когда нужны переменные
$user_id = 123;
$sql = "SELECT * FROM users WHERE id = $user_id";
// Или используй heredoc/nowdoc для больших строк
$html = <<<HTML
<div>
<h1>$title</h1>
<p>$content</p>
</div>
HTML;
// Nowdoc для строк без переменных
$json = <<<'JSON'
{
"key": "$value",
"nested": "$data"
}
JSON;
В контексте
// Конкатенация
$str = 'Hello' . ' ' . 'World'; // Лучше для строк без переменных
$str = "Count: $count items"; // Лучше с переменными
// JSON
$json = '{"key": "' . $value . '"}';
// Лучше:
$json = "{\"key\": \"$value\"}";
// Или:
$json = json_encode(['key' => $value]);
// Регулярные выражения
$pattern = '/^[a-z]+$/'; // Одинарные (нет переменных)
$pattern = "/^[a-z{$count}]+$/"; // Двойные (есть переменная)
Вывод
Используй одинарные кавычки по умолчанию (быстрее, безопаснее, видна уникальность), двойные кавычки когда нужны переменные или escape-последовательности.