Я думаю, прежде чем вы начнете беспокоиться об этом, вам нужно посмотреть, стоит ли об этом думать. Я подумал об этом, написал следующий крошечный скрипт и запустил его, чтобы посмотреть, на что похожи тесты.
Для каждой петли я сделал 100 000 проходов. Теперь я нигде не печатал свои строки, поэтому, если из-за этого оптимизатор PHP забирает всю мою работу, я приношу свои извинения. Однако, глядя на эти результаты, вы видите разницу в 0,00001 секунды для каждого.
Прежде чем оптимизировать что-либо, кроме читабельности, используйте профилировщик и посмотрите, где находятся ваши горячие точки. Если вы запустили десятки миллионов конкатенаций, у вас может быть аргумент. Но с 1000 вы все еще говорите о разнице в 0,01 секунды. Я уверен, что вы могли бы сэкономить более 0,01 секунды, просто оптимизируя запросы SQL и тому подобное.
Мое доказательство ниже ....
Вот что я пробежал:
<?php
for($l = 0; $l < 5; $l++)
{
echo "Pass " .$l. ": \n";
$starta = microtime(1);
for( $i = 0; $i < 100000; $i++)
{
$a = md5(rand());
$b = md5(rand());
$c = "$a $b".' Hello';
}
$enda = microtime(1);
$startb = microtime(1);
for( $i = 0; $i < 100000; $i++)
{
$a = md5(rand());
$b = md5(rand());
$c = $a . ' ' . $b . ' Hello';
}
$endb = microtime(1);
echo "\tFirst method: " . ($enda - $starta) . "\n";
echo "\tSecond method: " . ($endb - $startb) . "\n";
}
Вот результаты:
Pass 0:
First method: 1.3060460090637
Second method: 1.3552670478821
Pass 1:
First method: 1.2648279666901
Second method: 1.2579910755157
Pass 2:
First method: 1.2534148693085
Second method: 1.2467019557953
Pass 3:
First method: 1.2516458034515
Second method: 1.2479140758514
Pass 4:
First method: 1.2541329860687
Second method: 1.2839770317078