$x . $y . $z
совпадает с ($x . $y) . $z
Тем не менее, ни один из подходов не позволяет достичь производительности. Это как:
// ($x . $y) . $ z
$tmp = $x . $y;
return $tmp . $z;
против
// $x . ($y . $ z)
$tmp = $y . $z;
return $x . $tmp;
В обоих случаях происходит одинаковое количество конкатенаций. Если бы один метод был быстрее (но ни один из них), то он зависел бы от длины $x
, $y
и $z
. (То есть быстрее ли вы добавляете короткую строку к длинной строке или добавляете длинную строку к короткой строке - это действительно вопрос, который вы задаете. Без тестирования я бы сказал, что разница незначительна)
Теперь они различны: $x .= $y
и $x = $y . $x
. Первая - это операция добавления ASSIGN_CONCAT
, которая может быть значительно быстрее, чем добавление (CONCAT
, ASSIGN
). Обратите внимание, что $x = $x . $y
, хотя функционально эквивалентно $x .= $y
, также является двумя операциями. Таким образом, этот стиль добавления будет иметь такую же разницу в производительности (если есть), как и при добавлении.