Я знаю, що це запитували / відповіли деякий час тому, але надаючи цю відповідь, оскільки вона функціонально рівнозначна, незважаючи на те, що вона не є оператором присвоєння, і ніхто не коментував її використання для загального об'єднання рядків.
Ви можете вивчити використання сімейства функцій sprintf( документація ) для об'єднання рядків. Це забезпечує набагато більше санітарної обробки та зручності використання, ніж просто поєднання двох рядків з операторами призначення.
$foo = 'foo';
$append = sprintf('%1$s%2$s', $foo, 'bar');
var_dump($append);
/* string(6) "foobar" */
$prepend = sprintf('%1$s%2$s', 'bar', $foo);
var_dump($prepend);
/* string(6) "barfoo" */
$prependInvert = sprintf('%2$s%1$s', $foo, 'bar');
var_dump($prependInvert);
/* string(6) "barfoo" */
$wrap = sprintf('%2$s%1$s%2$s', $foo, 'bar');
var_dump($wrap);
/* string(6) "barfoobar" */
Я зазвичай використовую vsprintf, оскільки працювати з масивами легше керувати позиціями значень, ніж окремі аргументи.
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */
Також із масивом значень можна просто implodeотримати результуючий набір значень для простого об'єднання рядків.
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */