Eu sei que isso foi perguntado / respondido há algum tempo, mas fornecendo esta resposta porque é funcionalmente equivalente, apesar de não ser um operador de atribuição e ninguém comentar sobre seu uso para concatenação geral de strings.
Você pode querer olhar para o uso da família sprintf
( documentação ) de funções para concatenação de strings. Ele fornece muito mais higienização e usabilidade do que apenas combinar duas strings com operadores de atribuição.
$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" */
Eu normalmente uso vsprintf
, já que trabalhar com matrizes é mais fácil de gerenciar posições de valor do que argumentos individuais.
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */
Também com uma matriz de valores, pode-se simplesmente implode
o conjunto de valores resultante para concatenação de string simples.
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */