使用转义符“\”有点不好理解啊有大神讲一下为什么这样写吗
我的理解是$str_string=”我说:\"我是这样写的”\“;
或者$str_string=”我说:“\我是这样写的\”“;
然而实际上$str_string=“事实说:\"事实上是这样写的\"";
难道是读取的问题吗是因为计算机要这样\"这样读取的问题吗 对称性强迫症受不了
以上只是猜测希望有大神稍微解释下 本人小白一只谢谢了
我的理解是$str_string=”我说:\"我是这样写的”\“;
或者$str_string=”我说:“\我是这样写的\”“;
然而实际上$str_string=“事实说:\"事实上是这样写的\"";
难道是读取的问题吗是因为计算机要这样\"这样读取的问题吗 对称性强迫症受不了
以上只是猜测希望有大神稍微解释下 本人小白一只谢谢了
2016-10-26
转义字符是程序中有些字符本身有一定意思的,比如单引号或双引号,他们在程序中本身的意思是用来表达字符类型的数据,如:'php',"我想学PHP",如果要在字符中需要显示字符单引号或双引号,很容易被PHP的解释器理解成用来包裹字符定义字符串的,如:"我想学"PHP",会被分成两部分 ("我想学")和(PHP"),前面的没有问题,后面的PHP解释器就无法解释了,这个时候我们需要将中间的双引号的功能去掉,让它仅能表达的是个字符,而不是定义字符串这样的功能,这个去掉其原始功能的行为,我理解成转义,那么正确的表达方式是"我想学\"PHP"
转义还有第二种函义,从某种意义上可能还是属于上面的一种。计算机中定义的字符有很多个(ASSCI码中字符,128个),其中有些字符是看不到的,比如换行,制表符号(tab键产生的字符,一般有4个或8个空格那么长),而我们的键盘上键实在太少了,想要表达那么多字符现有的键盘肯定达不到,这就需要有字符与字符之间相互组合,这种组合不能随便的任字母组合,需要避开常用的组合,如(ab,abc,bcd),因为那些是日常经常会碰到的。PHP中选择了斜扛+字符(\ABC)的方式,这种方式也是转义。
所以才有了上述的转义字符
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜线 092
​ ​ ​
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
举报