📚
#13 16.09.2025 PHP Basics

Расскажите об использовании одинарных кавычек ''.

Строки в одинарных кавычках ' ' не выполняют интерполяцию переменных ($name выведется как есть) и спецсимволов (\n останется \n). Экранировать нужно только саму кавычку \' и обратный слеш \\. Идеальны для статического текста без переменных.

Подробнее
⚠️
Внимание! Этот текст был сгенерирован AI-ассистентом. Информация может содержать неточности и требует проверки.

Полный ответ:

1. Основное поведение: отсутствие интерполяции

Самое главное свойство строк в одинарных кавычках — интерполяция переменных в них не производится. Текст внутри них обрабатывается практически “как есть”.

$name = 'Ivan';
echo 'Hello, $name!'; // Выведет: Hello, $name!

2. Экранирование в одинарных кавычках

Экранировать нужно значительно меньше символов по сравнению с двойными кавычками.

  • Обязательно нужно экранировать: саму одинарную кавычку (') и обратный слеш (\), если он стоит в конце строки.
  • Не нужно экранировать: двойные кавычки (").
echo 'It\'s a beautiful day'; // Экранирование кавычки
echo 'C:\\xampp\\htdocs';     // Экранирование обратного слеша
echo 'She said "Hello"';      // Двойные кавычки экранировать не нужно

Любой другой обратный слеш, не предшествующий ' или \, будет воспринят как обычный символ \.

echo 'Hello\nWorld'; // Выведет: Hello\nWorld (перенос не произойдет)

3. Производительность (Миф и Реальность)

Существует распространенное мнение, что строки в одинарных кавычках обрабатываются быстрее, так как PHP не проверяет их содержимое на наличие переменных.

Это правда, но разница настолько ничтожна, что в современном PHP ей можно пренебречь. Выбор кавычек должен основываться на необходимости интерполяции, а не на мнимой оптимизации. Оптимизирующий движок Zend Engine (OPcache) сводит эту разницу к нулю.

4. Сравнение с двойными кавычками (“ “)

Характеристика Одинарные кавычки (' ') Двойные кавычки (" ")
Интерполяция переменных Нет Да
Интерполяция спецсимволов Нет (\n выведется как \n) Да (\n перенесет строку)
Экранирование Только \' и \\ \", \$, \n, \t и др.
Производительность Чуть выше (незначительно) Чуть ниже (незначительно)

5. Когда использовать одинарные кавычки?

  1. Когда не нужна интерполяция: Для вывода простого текста, где нет переменных.
    echo 'Статический текст без переменных';
    
  2. Для ключей массива: Часто используется стиль, где строковые ключи массива объявляются в одинарных кавычках.
    $array = ['key' => 'value'];
    
  3. Для простых HTML-атрибутов: внутри которых используются двойные кавычки.
    echo '<input type="text" name="first_name">'; // Удобно, не нужно экранировать "
    
  4. В условиях и строках, где часто встречается символ $: который не должен быть переменной.
    echo 'Цена: $100'; // Выведет "Цена: $100", а не "Цена: 00"
    

6. Герентикс (Heredoc) и Nowdoc

Для многострочных строк есть аналоги:

  • Heredoc (<<<EOT) — ведет себя как строка в двойных кавычках (интерполяция есть).
  • Nowdoc (<<<'EOT') — ведет себя как строка в одинарных кавычках (интерполяции нет). Это аналог одинарных кавычек для многострочных текстов.
// Nowdoc (как одинарные кавычки)
echo <<<'TEXT'
Это многострочный текст.
Переменные $name здесь НЕ будут работать.
Спецсимволы \n тоже не работают.
TEXT;

Итог:

Одинарные кавычки в PHP создают строки, в которых не работает интерполяция переменных и управляющие последовательности (кроме \' и \\). Они полезны для статического текста, где не нужны переменные, и в случаях, где нужно избежать экранирования двойных кавычек. Выбор между ' и " — вопрос удобства и читаемости, а не производительности.