Operadores para strings

Existen dos operadores para datos tipo string. El primero es el operador de concatenación ('.'), el cual retorna el resultado de concatenar sus argumentos derecho e izquierdo. El segundo es el operador de asignación sobre concatenación ('.='), el cual añade el argumento del lado derecho al argumento en el lado izquierdo. Por favor consulte Operadores de asignación para más información.

"Hello ";
$b $a "World!"// ahora $b contiene "Hello World!"

$a "Hello ";
$a .= "World!";     // ahora $a contiene "Hello World!"

Ver también las secciones del manual sobre el tipo string y las funciones de strings.

add a note add a note

User Contributed Notes 5 notes

anders dot benke at telia dot com
13 years ago
A word of caution - the dot operator has the same precedence as + and -, which can yield unexpected results.


$var = 3;

echo "Result: " . $var + 3;

The above will print out "3" instead of "Result: 6", since first the string "Result3" is created and this is then added to 3 yielding 3, non-empty non-numeric strings being converted to 0.

To print "Result: 6", use parantheses to alter precedence:

$var = 3;

echo "Result: " . ($var + 3);
4 years ago
As for me, curly braces serve good substitution for concatenation, and they are quicker to type and code looks cleaner. Remember to use double quotes (" ") as their content is parced by php, because in single quotes (' ') you'll get litaral name of variable provided:


= '12345';

// This works:
echo "qwe{$a}rty"; // qwe12345rty, using braces
echo "qwe" . $a . "rty"; // qwe12345rty, concatenation used

// Does not work:
echo 'qwe{$a}rty'; // qwe{$a}rty, single quotes are not parsed
echo "qwe$arty"; // qwe, because $a became $arty, which is undefined

Stephen Clay
11 years ago
"{$str1}{$str2}{$str3}"; // one concat = fast
$str1. $str2. $str3;   // two concats = slow
Use double quotes to concat more than two strings instead of multiple '.' operators.  PHP is forced to re-concatenate with every '.' operator.
hexidecimalgadget at hotmail dot com
8 years ago
If you attempt to add numbers with a concatenation operator, your result will be the result of those numbers as strings.


echo "thr"."ee";           //prints the string "three"
echo "twe" . "lve";        //prints the string "twelve"
echo 1 . 2;                //prints the string "12"
echo 1.2;                  //prints the number 1.2
echo 1+2;                  //prints the number 3

9 years ago
Be careful so that you don't type "." instead of ";" at the end of a line.

It took me more than 30 minutes to debug a long script because of something like this:

echo 'a'.
$c = 'x';
echo 'b';
echo 'c';

The output is "axbc", because of the dot on the first line.
To Top