Sé que esto fue preguntado/respondido hace un tiempo, pero proporcionando 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 examinar el uso de la familia de funciones sprintf
(documentation) para la concatenación de cadenas. Proporciona mucha más desinfección y usabilidad 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 uso vsprintf
, ya que se trabaja con matrices es más fácil de manejar que las posiciones de valor 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 implode
el conjunto resultante de valores para sencilla concatenación de cadenas.
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */
'$ bar. = $ Foo'? –
Respondo por James aunque debería haber escrito una respuesta ... – Christian
Eso agrega '$ foo' a' $ bar', en lugar de anteponer '$ bar' a' $ foo'. El resultado es similar, pero creo que quiere mutar '$ foo'. –