1.介绍
在PHP中,由于是弱类型语言,变量可以不用事先定义就可以使用。
我们用php开发的时候,大多用双引号和单引号来定义字符串。既然有两种方式,它们之间肯定有区别。
除了用单引号和双引号定义字符串之外,php还添加了两个语法糖,heredoc和nowdoc。
2.单引号和双引号
2.1.单引号
在单引号中,任何特殊字符都将按原样输出[除了 , '将通过转义输出]
例如。
?php$var='这是一个var!';echo '666$var666、 '、 '、\、n、r、t、 $ ';
从上面的例子中,我们可以清楚地看到变量没有被解析;同时,只有带反斜杠的转义字符的单引号和反斜杠被转义并直接输出。
2.2.双引号
在双引号中,如果遇到$,变量将被解析;
在双引号中转义反斜杠的转义字符;
?php$var='这是一个var!';echo '666$var 666、 '、 '、\、n、r、t、 $ ';转义字符代码转义字符'双引号'单引号 反斜杠 n换行符 r回车符 t制表符 $美元符号的含义从上面的例子中,我们可以知道双引号中的变量被解析并替换为字符串;带有反斜杠的其他转义字符也相应地被转义。
2.3、单引号和双引号的区别
以上两者的主要区别:
1.双引号将替换变量值,而单引号将作为字符串输出。
2.支持逃跑
3.性能速度的问题,因为双引号中的字符串需要检查是否包含被$符号修改的变量,理论上单引号更快。
3.这里多克和现在多克
3.1、此处文档
Heredoc可以理解为不用双引号定义字符串,但效果和用双引号一样。[此时,双引号相当于普通字符]
语法要求:
1.开始标记和结束标记使用相同的字符串,通常用大写字母书写。
2.开始标记后不能出现空格或额外字符。
3.结束标记必须立即写入,没有缩进和空格,结束标记的末尾应该有分号。
4.开始标记和结束标记之间的变量可以正常解析,但是函数不能。
例如。
?php $var='这是sui feng ';回声' EOT '!DOCTYPE html html head meta http-equiv=' Content-Type ' Content=' text/html;charset=utf8 '/title ' with the wind '/title/head dy 66666666 br/' 6666666 ' br/$ varbr/ $ varbr/ n 666 br/body/htm lot;
从打印结果可以看出,双引号只是一个普通字符;其他效果与双引号的字符串效果相同。
3.2、nowdoc
同样,nowdoc是一个没有单引号定义的字符串,但其效果等同于用单引号定义的字符串。[单引号此时等同于普通字符]
语法和这里一样
例如。
?php $var='这是sui feng ';回声' EOT '!DOCTYPE html html head meta http-equiv=' Content-Type ' Content=' text/html;charset=utf8 '/title ' with the wind '/title/head dy ' 02020 ' br/ ' br/6666666 br/' 6666666 ' br/$ varbr/ $ varbr/ n 666 br/body/htm lot;
注意:
分隔符后面不能有字符[尤其是空格字符有时不会被注意到],否则会出现错误。
如果在上面的示例中EOT后有空格,将会报告此错误:[解析错误:语法错误,意外' '(t _ sl)]
摘要
以上是边肖介绍的PHP中定义字符串的四种方式的详细说明,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!