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:
<?php
$a = '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
?>| CARVIEW |
Select Language
HTTP/2 301
server: myracloud
date: Fri, 26 Dec 2025 16:16:21 GMT
content-type: text/html
content-length: 161
location: https://www.php.net/language.operators.string
HTTP/2 200
server: myracloud
date: Fri, 26 Dec 2025 16:16:21 GMT
content-type: text/html; charset=utf-8
content-language: en
permissions-policy: interest-cohort=()
x-frame-options: SAMEORIGIN
status: 200 OK
link: ; rel=shorturl
last-modified: Fri, 26 Dec 2025 16:08:06 GMT
vary: accept-encoding
content-encoding: gzip
expires: Fri, 26 Dec 2025 16:16:21 GMT
cache-control: max-age=0
PHP: String - Manual
update page now
String Operators
There are two string operators. The first is the
concatenation operator ('.'), which returns the concatenation of its
right and left arguments. The second is the concatenating assignment
operator ('.='), which appends the argument on the right side to
the argument on the left side. Please read Assignment
Operators for more information.
Example #1 String Concatenating
<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"
var_dump($b);
$a = "Hello ";
$a .= "World!"; // now $a contains "Hello World!"
var_dump($a);
?>
+add a note
User Contributed Notes 6 notes
K.Alex ¶
12 years ago
anders dot benke at telia dot com ¶
21 years ago
A word of caution - the dot operator has the same precedence as + and -, which can yield unexpected results.
Example:
<php
$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:
<php
$var = 3;
echo "Result: " . ($var + 3);
?>
Stephen Clay ¶
20 years ago
<?php
"{$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 ¶
16 years ago
If you attempt to add numbers with a concatenation operator, your result will be the result of those numbers as strings.
<?php
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
?>
biziclop ¶
3 years ago
Some bitwise operators (the and, or, xor and not operators: & | ^ ~ ) also work with strings too since PHP4, so you don't have to loop through strings and do chr(ord($s[i])) like things.
See the documentation of the bitwise operators: https://www.php.net/operators.bitwise
<?php var_dump(
('23456787654' ^ 'zVXYYhoXDYP'), // 'Hello_World'
('(!($)^!)@$@' | '@ddhfIvn2H$'), // 'hello_world'
('{}~|o!Wo{|}' & 'Lgmno|Wovmf'), // 'Hello World'
(~'<0-14)(98' & '}}}}}}}}}') // 'AMPLITUDE'
); ?>
Live demo: https://3v4l.org/MnFeb
mariusads::at::helpedia.com ¶
17 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.
↑ and ↓ to navigate •
Enter to select •
Esc to close • / to open
Press Enter without
selection to search using Google