字符串的定义可以用三种字面上的方法定义
单引号、双引号、定界符。
单引号:不解析转义字符,和变量。
双引号:解析转义字符,和变量。
定界符:都解析。
1、普通格式,用单引号和双引号定义的字符。
$str="我是双引号包起来的字符串"; 或 $str='我是单引号包起来的字符串';
区别:双引号包起来的字符串可以不需要连接符而直接插入变量,而单引号不会对字符串内的变量格式做处理的。
定义拼接变量的字符串,单引号效率高点。
定义纯粹的字符串,不拼接不包含变量的话,双引号效率高一点。
2、双引号包起来的字符串内可以直接插入变量,比如直接在要插入变量的位置写入变量名或者用大括号把变量名包起来,
$str1="我是双引号包起来的字符串:$str"; //输出时会把$str 变量的值输出
补充:如果用“文字{$str}文字”的方式内嵌变量名,则变量名是你所预期指定的,而如果用“文字$str文字”来内嵌变量名,此时变量会被处理成“$str文字”,而不是你所预期的“$str”。之所以如此,是因为没有明确用大括号指明变量的时候,PHP自动处理变量名的时候,是采用的单词分词字符作为界限的,这里一定要注意。分词字符一般是空格标点符号等。
3、使用定界符语法(“<<<”)。
注意:应该在<<<之后提供一个标识符,标识符后不能有空格 ,然后是字符串,然后是同样的标识符结束字符串,结束标识符不能有空格。
事例:$str1 = '1231231';
$str=<<<STR
{$str1}
STR;
STR是字符串界定符,界定符的名字可以自己定义,两个界定符之间的内容就是多行字符串。其中的单引号双引号可以直接输出而不必转义,当然里面也可以直接插入变量,输出是会自动替换变量值的。
4、外加一个小技巧,当使用 echo进行字符串输出时,如果字符串使用拼接方式组成,可以使用逗号来连接需要拼接的各部分字符串和变量,比如
echo 'first',"second",$str,"end";
据说这样输出速度要快一些,原因在于echo可以接受多个参数,并直接按顺序输出,实际上逗号不是拼接字符串,而是把不同字符串和变量作为参数传送给echo命令。