php字符串拼接
在php里声明一个字符串有2种方式,一种是用单引号,另一种是用双引号。2者最大的区别就是当字符串中包含变量时,单引号不能输出变量的值,而是直接输出变量名,双引号就可以输出变量的值。
1 <?php 2 $a = 'hello'; 3 $b = 'world'; 4 echo '$a $b'; //输出$a $b 5 echo "$a $b"; //输出hello world 6 ?>
另外单引号里只能有2种转义字符,\'(表示单引号)和\\(表示反斜杠),双引号就没这个限制。
1 <?php 2 echo '\'hello\\world\''; //输出'hello\world' 3 echo "\thello\r\n"; //\t表示制表符,\r\n表示换行 4 ?>
在php中字符串的拼接是用' . ',输出字符串一般是用echo。
1 <?php 2 $a = 'hello'; 3 $b = 'world'; 4 echo $a . ' ' . $b;//输出hello world ( )表示空格 5 ?>
也可以用大括号{$str}在字符串里内嵌变量,如"文字{$str}文字",如果不用大括号{}就要注意,比如"文字$str文字",这时是输出文"字+$str文字",而不是"文字+$str+文字",当然不用{}也可以用分词字符来把变量和文字分开,分词字符一般是空格,标点符号等。
1 <?php 2 $a = 'hello'; 3 echo "qqq{$a}qq";//输出qqqhelloqqq 4 echo "qqq$aqqq";//输出的是qqq$aqqq,而不是qqqhelloqqq 5 echo "qqq$a qqq";//在$a后面加个空格也是可以得,输出qqq$a qqq 6 ?>
在php也是可以直接书写多行字符串的
1 <?php 2 $str=<<<STR 3 'ok',"hello" 4 I will 5 {$str1} 6 STR; 7 8 /**** 9 * 其中三个小于号代表多行字符串的输入,STR是字符串界定符,界定符的名字可以自己定义,两个界定符之间的内容就是多行字符串。其中的单引号双引号可以直接输出而不必转义,当然里面也可以直接插入变量,输出是会自动替换变量值的 10 ****/ 11 ?>
一个小技巧,当使用 echo进行字符串输出时,如果字符串使用拼接方式组成,可以使用逗号来连接需要拼接的各部分字符串和变量,比如
echo 'first',"second",$str,"end";
据说这样输出速度要快一些,原因在于echo可以接受多个参数,并直接按顺序输出,实际上逗号不是拼接字符串,而是把不同字符串和变量作为参数传送给echo命令