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

转义字符究竟该什么时候用?怎么用啊?糊涂了

$str_string3 = '甲问:\'能告诉我网址吗?\'';
$str_string4 = "乙答道:\"www.imooc.com\"";
$str_string2 = "乙毫不犹豫地回答:'当然是慕课网咯!'";

提问者:慕粉2030579827 2017-03-05 19:41

个回答

  • 幽钥
    2017-03-05 21:33:31
    已采纳

    字符串最外围(就是头尾之间)必须要有单引号或者双引号引起,但有时候会出现这样的场景,在这段字符串中的人物说了话,或者有文字需要用引号引起,在平时我们写作的时候都会在人物说话这个场景加上双引号是吧。

    $string="一个同学问我:'转义字符究竟该什么时候用?怎么用啊?',我说出我的理解";

    字符串的标志就是首尾有引号引起"" || '';我们并没有声明这段话是字符串,为什么系统能识别这是一段字符串?那是因为这段话是用双引号或者单引号引起的;字符串第一个双引号(单引号)与字符串最后一个双引号(单引号)是一对,这之间就是一段字符串,如果你这样

    $string="一个同学问我:"转义字符究竟该什么时候用?怎么用啊?",我说出我的理解";

    如果你这样写,这一段字符串有四个双引号,两对双引号,系统解析的时候怎么去判断这一段字符串的开始位置和结束位置?四个引号,1,2,3,4;他们的两两不重复不移动位置的组合,有多少?1,2;1,3;1,4;2,3;...这么多组合系统是没法判断的,机器比人笨嘛。解决这个判断,我将其中的2,3换成单引号,系统在解析的时候就不会疑惑了,第一个是双引号那么这段字符串的结束符号必定也是双引号,单引号就忽略掉了,同理单引号引起的也是如此。

    $string="一个同学问我:'转义字符究竟该什么时候用?怎么用啊?',我说出我的理解:'我认为...'。";

    有个规则:单中嵌双,双中嵌单。上面这段话是对的,它符合这个规则,单双引号都是同理的,怎么说呢,取反。

    $string="一个同学问我:\"转义字符究竟该什么时候用?怎么用啊?\",我说出我的理解:\"我认为...\"。";

    在我们写文章的时候,人物说的话是双引号引起的对吧,上面那段字符串我还是要用双引号作为最外层引号,人物说的话也要用双引号引起。最外层引号和字符串里面人物说的话也是双引号,系统怎么去解析?前面说了,是没法判断的,这时候我们使用转义字符“\”;我们学计算机课程的时候老师都会给我们说转义字符,其实转义字符可以这样理解:系统规定了什么符号有什么功能,比如我们单双引号:简直就是字符串的标志。解析的时候“\”告诉系统:“脚都嘛的,这个不是你的,你别误会,这是别人的东西”,系统:“啊?不是我的东西啊?不好意思“ ,然后系统就跳过这个了,然后输出的时候就原样显示。

    粘贴一段话:

    当双引号中包含变量时,变量会与双引号中的内容连接在一起;

    当单引号中包含变量时,变量会被当做字符串输出。

    以上是我的理解,希望我的理解能对你有所帮助,我的理解也有不足的地方,欢迎指正!你的见解对我也是一种提升,谢谢


  • Fokrychel
    2017-06-15 11:30:34

    template:"<div ng-class='(a==true)?\"more\":\"para\"'><a href='#' ng-click='a=!a'>showmore</a>" +
        "<span ng-transclude></span></div>"

    这里还是用到转义字符

  • 慕粉1206348138
    2017-03-05 22:00:47

    字符串的标志就是首尾有引号引起"" || '';我们并没有声明这段话是字符串,为什么系统能识别这是一段字符串?那是因为这段话是用双引号或者单引号引起的;字符串第一个双引号(单引号)与字符串最后一个双引号(单引号)是一对,这之间就是一段字符串。。解决这个判断,我将其中的2,3换成单引号,系统在解析的时候就不会疑惑了,第一个是双引号那么这段字符串的结束符号必定也是双引号,单引号就忽略掉了,同理单引号引起的也是如此。

  • 不信小呆
    2017-03-05 21:18:14

    转义字符的使用:

    以"\"符号为例,JAVA中有很多操作,例如文件操作等,需要用到路径这个东西,比如:com\mypackage\xxx.xml,这个路径一般是以字符串形式表示的,但问题来了,JAVA不知道你的\号到底是路径中的下一层的意思,还是字符串"\"的意思。
    所以正确的写法应该是com\\mypackage\\xxx.xml。
    又例如我们熟悉的\n,换行符,如果在字符串中间直接按回车,java是不会对字符串做换行操作的,因为他不知道你想将代码分两行写还是字符串分两行显示,这时候就需要在字符串中间加上\n转义字符来将字符串换行。
    总之,转义字符的意义就是避免出现二义性,二义性是所有编程语言都不允许的。