Возможный дубликат:
Есть ли преимущество в производительности одинарной кавычки по сравнению с двойной кавычкой в php?
Что быстрее, одинарные или двойные кавычки и почему?
Кроме того, в чем преимущество использования любого метода?
Возможный дубликат:
Есть ли преимущество в производительности одинарной кавычки по сравнению с двойной кавычкой в php?
Что быстрее, одинарные или двойные кавычки и почему?
Кроме того, в чем преимущество использования любого метода?
Зависит от того, что вы хотите сделать. Я только что сделал несколько тестов и протестировал назначение строк с 5 тестовыми примерами: двойные кавычки + переменная, двойные кавычки, двойные кавычки и добавление строки, одинарные кавычки и одинарные кавычки с добавлением строки.
Мой тестовый код. Миллион петель. Назначение строки.
<?php
$start = microtime(true);
$str = "";
for($i = 0; $i<1000000; $i++)
{
$str = "hello $i";
}
$end = microtime(true);
echo $end - $start;
Результаты:
Строки в одинарных и двойных кавычках без переменных одинаково быстры. (каждый повторил около 0,08). Строка с одинарными и двойными кавычками с конкатенацией переменных примерно одинакова, но медленнее, чем без переменной. (каждый повторялся около 0,17-0,20) Двойные кавычки с переменной в строке были самыми медленными (около 0,20-0,25)
Таким образом, Single/Double на самом деле не имеет значения, но кажется, что конкатенация строк выполняется быстрее, чем замена переменных.
Я бы сказал, что одинарные кавычки быстрее, потому что они не требуют Shift ;)
Различные кавычки влияют на переменный вывод и escape-символы. Содержимое внутри одинарных кавычек берется как есть, управляющие символы и переменные не интерпретируются. Двойные кавычки интерпретируют значения переменных и экранируют специальные символы, такие как символы новой строки (\n
).
Вы обрабатываете 1000 строк в секунду? Если нет, то не стоит слишком беспокоиться.
Используйте двойные кавычки, если вы хотите использовать интерполяцию строк (с переменными, математикой и т. д.)
Вы также должны стараться быть последовательными.
Мы должны забыть о малой эффективности, скажем, примерно в 97% случаев: преждевременная оптимизация — корень всех зол.
Посмотрите на сравнение производительности двойных (") и одинарных (') кавычек для строк @ phpbench.
Вывод: "В сегодняшних версиях PHP похоже, что этот аргумент был удовлетворен по обе стороны линии. Давайте все объединимся в гармонии в этой!"
Что касается скорости, единственный правильный ответ: это вообще не должно вас беспокоить. Период. Разница, если вы ее даже найдете, не имеет никакого значения. Чтобы заботиться о скорости, нужно понимать всю картинку, а не один ее пиксель. Сделать ваше приложение быстрее и эффективнее — большая и сложная задача. Но этого нельзя сделать, задавая вопросы «что быстрее». Если вы действительно обеспокоены этим, начните с изучения того, что такое профилирование.
Что касается преимуществ, то лучше всего изучить их на странице руководства: http://php.net/types.string
На самом деле это не преимущества, а скорее варианты использования.
Если обработка текста внутри не требуется, то single работает быстрее.
одинарная кавычка, как правило, быстрее, и все, что цитируется внутри, рассматривается как простая строка,
как
echo 'anyting else ? $something';
>> anything else? $something
PHP не будет использовать дополнительную обработку для интерпретации того, что находится внутри одинарной кавычки.
Однако, по сравнению с двойной кавычкой, PHP заменит $something присвоенным ему значением.
$something = 'yup';
echo "anyting else ? $something";
>> anything else ? yup