2010-09-07 4 views
3

Я хочу, чтобы объединить две переменные вместе:Каков самый быстрый способ конкатенации строк в PHP?

$var1 = 'Welcome ';

$var2 = $_SESSION['UserName'];

Какой из них будет работать быстрее? Пример кода 1:

$var3 = $var1.$var2; 

Или пример кода 2:

$var3 = "$var1$var2"; 
+4

Почему вы не сравниваете это самостоятельно? – Gumbo

+1

Если вы считаете, что это повлияет на то, что я думаю, '' _SESSION ['UserName'] ', вероятно, будет содержать, вы ошибаетесь. –

+2

Возможный дубликат [Конкатенация строк PHP - «$ a $ b» vs $ a. "". $ b - performance] (http://stackoverflow.com/questions/1813673/php-string-concatenation-ab-vs-ab-performance) – karim79

ответ

7

Кода 1 не будет работать на всех ..

соображения Синтаксис отведены, образец 1 должен быть тривиальным быстрее, потому что это не предполагает синтаксический анализ строки (поиск переменных).

Но это очень, очень тривиальный ..

+0

Код должен быть разобран в любом случае. – Gumbo

+4

+1 Точно. Пример 1 будет генерировать меньше инструкций OPCode, поэтому он будет быстрее. Синтаксический анализ строк не должен иметь большого значения (поскольку он выполняется препроцессором), но он будет генерировать больше кодов операций. Дело в любом случае, мы, скорее всего, говорим о разнице в субмикросекундном диапазоне. Поэтому, если вы не имеете дело с буквально миллионами из них внутри жестких циклов, сначала обратитесь к читабельности. В этом случае более легко читаемое решение просто так же будет быстрее. Двойная победа! – ircmaxell

2

Оба примера обеспечат тот же результат - $ var3 равно «Добро пожаловать Wazzy». Однако пример кода 1 будет работать значительно быстрее. Попробуйте с большими наборами данных (или путем объединения небольших наборов миллион раз или около того), и вы увидите, что конкатенация работает значительно быстрее, чем замена переменных.

+0

Это не должно быть неожиданностью, не так ли? –

Смежные вопросы