Sé que esto se preguntó / respondió hace un tiempo, pero proporcioné esta respuesta, ya que es funcionalmente equivalente a pesar de que no es un operador de asignación y nadie comentó sobre su uso para la concatenación general de cadenas.
Es posible que desee estudiar el uso de la familia de funciones sprintf( documentación ) para la concatenación de cadenas. Proporciona mucha más desinfección y facilidad de uso que simplemente combinar dos cadenas con operadores de asignación.
$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" */
Normalmente lo uso vsprintf, ya que trabajar con matrices es más fácil de administrar posiciones de valor que argumentos individuales.
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */
También con una matriz de valores, uno puede simplemente implodeel conjunto de valores resultante para una simple concatenación de cadenas.
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */