Какие кавычки использовать в PHP

0 No tags Permalink 165

Не секрет, что кавычки в php бывают одинарные и двойные. Давайте выясним, когда уместнее те или иные варианты использования кавычек.

Одинарные кавычки

Простейшим способом определить строку является  — выделение текста в одинарные кавычки.

Если нам нужно использовать одинарную кавычку в тексте, то необходимо проэкранировать ее косой чертой (\).

Управляющие последовательности в одинарных кавычках не работают.

Примеры использования одинарных кавычек:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo 'Это простая строка';
// Выводит: Это простая строка
 
echo 'I\'am happy';
// Выводит: I'am happy
 
echo 'Управляющие последовательности \n не работают';
// Выводит: Управляющие последовательности \n не работают
 
echo 'Переменные не разворачиваются  $example';
// Выводит: Переменные не разворачиваются $example 
?>

 

Двойные кавычки

Если выделить текст двойными кавычками, то строка будет определена также, как и одинарными. Но отличия у кавычек конечно же есть.

Ситуация с экранированием кавычек такая же, как и с одинарными кавычками.

Строка, которая заключена двойными кавычками — распознает большинство управляющих последовательностей для специальных символов.

Важнейшим отличием является тот факт, что двойные кавычки обрабатывают переменные.

Примеры использования двойных кавычек:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo "Это простая строка";
// Выведет: Это простая строка
 
echo "I\'am happy";
// Выводит: I"am happy
 
echo "Управляющие последовательности \n работают";
/* Выведет: Управляющие последовательности
работают */
 
echo "Переменная $example";
// Выведет: Переменная подставится
?>

Заострим внимание на том, что строки с двойными кавычками обрабатывают переменные.

Что происходит при обработке строки ? Интерпретатор проверяют каждую строку с двойными кавычками на переменные, т.е. происходит принудительный парсинг, на что уходит дополнительное время. Да, часто это доли секунды, но сам факт надо понимать. То есть если сравнить обработку разными кавычками одной строки (без переменных само собой), то строка с одинарными кавычками однозначно будет обработана быстрее.

 

Расчеты

На сайте ProfiPHP нашел интересные расчеты на данную тему. Автор написал простой скрипт, с помощью которого вычислял время на обработку строк:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Возвращаем метку времени в начале цикла
$start = microtime( true );
// Создаем цикл цикл на 1 млн итераций
for ( $i = 0; $i < 1000000; $i++ ) {
$text = 'Здесь символьная строка';
}
// Возвращаем метку времени по окончанию цикла
$end = microtime( true );
// Вычисляем затраченное время
$time = ( $end - $start );
// Выводим результат
echo $time;
?>
Результат: 0,44 сек.

Далее вместо одинарных кавычек были вставлены двойные:

1
$text = "Здесь символьная строка";
Результат: 0,45 сек.

Но автор не остановился и проверил скорость загрузки про добавлении переменной:

1
$text = $i.'Здесь символьная строка';
Результат: 1,12 сек.
1
$text = $i."Здесь символьная строка";
Результат: 1,12 сек.

 

Вывод

Если мы используем простой текст без переменных, то наш выбор — одинарные кавычки. В частности их стоит указывать при объявлении переменных. Двойные кавычки стоит использовать, если в строке необходимо указать переменную. А самый лучший вариант: Пользоваться одинарными кавычками и конкатенцией, когда необходимо использовать переменные. В рамках одной операции выигрыш будет небольшой. Но если вы пишите целый проект, то стоит придерживаться правил, изложенных выше.

Comments are closed.