php中字符串有4种表现形式,分别为单引号、双引号、单引号定界符字符串、双引号定界符字符串,下面,分别举例,简单描述下。
单引号字符串
定义如下:
$s1 = 'hello world';
如上,定义了一个变量名为s1,引用值为hello world的字符串。
单引号字符串可以进行转义符有:\ \’,示例如下:
$s1 = 'hello \world';// print hello \world
$s2 = 'hello \' world';// print hello ' world
$s3 = 'hello world\\';// print hello world\
双引号字符串
定义如下:
$s4 = "hello world";
双引号字符串转义符有:\n \t \ \” \r $,示例如下:
$v1 = 10;
$s4 = "hello world";
$s5 = "hello \\world";// print hello \world
$s6 = "hello \"world";// print hello "world
$s7 = "hello \n world"; //print hello
//world
$s8 = "\$v1 = $v1";// print $v1 = 10
单引号界定符字符串(nowdoc)
/**
* 此处的ABC可以是任意字符串,但是要与结束行的字符串保持一致
* 首行和尾行不能有任何空格等字符信息。
* 首行和尾行字符串内容保持一致,中间内容才为真正的字符串内容。
*/
$s9 = <<<'ABC'
真正的字符串内容,
'wangcai'
\$v1 = %v1;
ABC;
echo $s9;
输入结果为:
真正的字符串内容,
'wangcai'
\$v1 = %v1;
由此可以看出,单引号定界符字符串和单引号字符串一样,无法对$进行解析,只是原有输出。
并且,如果有单引号需要输出,也不需要加\进行转义的。
双引号定界符字符串(heredoc)
语法与单引号定界符字符串相同,只是有‘’换成了“”,而已,如下:
echo "\n";
$s1 = 12;
$str3 = <<<"ABC"
hahahhah
旺财 \$s1 = $s1
"ni hao ,qiao an"
hha
ABC;
输出结果为:
hahahhah
旺财 $s1 = 12
"ni hao ,qiao an"
hha
由此,也可看出,只有在双引号字符串和双引号定界符字符串中,才可以通过$对定义的数据进行取值,通过\$进行转义。
并且,用此方式进行字符串的定义,如果字符串内容中有双引号,是不需要加\”进行转换的,直接进行引用输出即可。