PHP: бесполезная микрооптимизация
Годы назад, когда многие увлекались микрооптимизациями ПХП, была среди них и такая — двойные кавычки заменяли на одинарные, первые были немного медленее. Причина вполне понятна — в строке, окружённой двойными кавычками, разрешена интерполяция — вставка переменных прямо в строку.
Выигрыш был мал, как по мне, но многим и этой разницы было достаточно.
И вот недавно мне кинули ссылку, где утверждается, что много лет назад ситуация поменялась — все виды кавычек обрабатываются с одинаковой скоростью. Я провёл замеры — так и есть, по ссылке не обманули. Я тогда подумал, что с введением в ПХП байт-кода, двойные кавычки в опкодах теперь просто не отличаются от одинарных, а интерполяция переделывается на объединение.
Сегодня проверил — примерно так оно и есть (ниже — опкоды ПХП):
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > ADD_STRING ~0 'double+'
1 ADD_VAR ~0 ~0, !0
2 ADD_STRING ~0 ~0, '+quotes'
3 ECHO ~0
4 4 > RETURN
Нет никакой разницы какой вид кавычек использован (в моём примере — двойные с переменной посередине) — внутреннее представление не различается.
Вывод такой: можно спокойно использовать двойные кавычки везде, кроме мест, где вам важно экранирование — там можно использовать одинарные, если это удобнее.