Что быстрее в PHP, одинарные или двойные кавычки?

Возможный дубликат:
Есть ли одна цитата с преимуществами производительности против двойной цитаты в php?

Чем быстрее, одиночные или двойные кавычки и почему?

Кроме того, в чем преимущество использования любого из методов?

Ответ 1

Зависит от того, что вы хотите сделать. Я просто сделал некоторые тесты и проверил назначение строк с 5 тестовыми примерами: двойные кавычки + переменная, двойные кавычки, двойные кавычки и добавление строки, одинарные кавычки и одинарные кавычки с добавлением строки.

Мой тестовый код. Миллион петель. Назначение строки.

<?php

$start = microtime(true);

$str = "";

for($i = 0; $i<1000000; $i++)
{
        $str = "hello $i";
}

$end = microtime(true);

echo $end - $start;

Результаты:

Одиночные и двойные кавычки без переменных одинаково быстры. (каждый из них повторяется около 0,08). Строка с одиночной и двойной кавычками с конкатенацией переменных примерно одинакова, но медленнее, чем никакая переменная. (каждый эхо произносил вокруг .17-.20) Двойные кавычки с переменной в строке были самыми медленными (около .20-.25)

Таким образом, Single/Double действительно не имеет значения, но кажется, что конкатенация строк быстрее, чем замена переменных.

Ответ 2

Я бы сказал, что одинарные кавычки быстрее, потому что они не требуют Shift;)

Различные кавычки имеют последствия для переменных выходных и escape-символов. Содержимое внутри одинарных кавычек принимается как есть, никакие управляющие символы и переменные не интерпретируются. Двойные кавычки интерпретируют значения переменных и выделяют специальные символы, такие как символы новой строки (\n).

Ответ 3

Вы обрабатываете 1000 строк в секунду? Если нет, вы не должны быть слишком обеспокоены.

Используйте двойные кавычки, если вы хотите использовать интерполяцию строк (с переменными, математикой и т.д.)

Вы также должны стараться быть последовательными.

Мы должны забыть о небольшой эффективности, скажем, около 97% времени: преждевременная оптимизация - корень всего зла.

Дональд Кнут

Ответ 4

Посмотрите на сравнение производительности двойных ( ") и одиночных (') кавычек для строк @ phpbench.

Заключение: "В современных версиях PHP похоже, что этот аргумент был удовлетворен по обе стороны линии. Позволяет всем объединиться в гармонии в этом!"

Ответ 5

одинарная кавычка, как правило, быстрее, и все цитируемые внутри рассматриваются как простая строка,

как

echo 'anyting else ? $something';
>> anything else? $something

PHP не будет использовать дополнительную обработку для интерпретации того, что находится внутри одной кавычки

Однако, сравните с двойной кавычкой, PHP заменит значение $something своим назначенным значением

$something = 'yup';
echo "anyting else ? $something";
>> anything else ? yup

Ответ 6

Что касается скорости, правильный ответ только , это не должно быть вашей проблемой вообще. Период. Разница, если вы ее даже найдете, вообще не имеет значения. Чтобы быть обеспокоенным скоростью, нужно понимать всю картину, а не один пиксель. Сделать приложение быстрее и эффективнее - это очень сложная задача. Но это невозможно, задавая вопросы "что быстрее". Если вы действительно обеспокоены этим, начните с изучения того, что такое профилирование.

Что касается преимуществ, страница руководства объясняет это лучшее место, чтобы изучить ее: http://php.net/types.string
Это не действительно преимущества, а скорее использование случаев.

Ответ 7

Если обработка текста внутри не требуется, тогда сингл будет быстрее.