问答详情
源自:3-10 PHP标量类型—字符串(2)

使用转义符“\”有点不好理解啊有大神讲一下为什么这样写吗

我的理解是$str_string=”我说:\"我是这样写的”\“;

或者$str_string=”我说:“\我是这样写的\”“;

然而实际上$str_string=“事实说:\"事实上是这样写的\"";

难道是读取的问题吗是因为计算机要这样\"这样读取的问题吗  对称性强迫症受不了

以上只是猜测希望有大神稍微解释下  本人小白一只谢谢了

提问者:qq_灰色的天翼_04218600 2016-10-26 15:41

个回答

  • 白素贞的许仙
    2016-10-26 16:04:23
    已采纳

    \a    响铃(BEL)    007    

    \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    任意字符    二位十六进制    

    这种转义字符是在计算机内部定义好的,如果你想要是先转义的话就得将你要转义的字符放在反徐线的后面,希望对你有帮助

  • qq_秋石_0
    2016-11-17 09:19:21

    转义字符是程序中有些字符本身有一定意思的,比如单引号或双引号,他们在程序中本身的意思是用来表达字符类型的数据,如:'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    任意字符    二位十六进制    


  • qq_灰色的天翼_04218600
    2016-10-26 16:06:39

    果然是这样吗总之谢谢了 虽然很不习惯但是我会克服这个肯爹的设定的