php单双引号以及特殊字符解析、php界定符

来源:互联网 发布:梦三国2mac版本 编辑:程序博客网 时间:2024/06/08 08:00

1、单、双引号的区别:

     双引号中的变量可以解析,单引号就是绝对的字符串;


2、单引号字符串中的 '  和 \ ;


        若要在单引号字符串中,单独的表示, ' 和 \ ,二者需要添加  \ 进行转义;

<?phpecho 'assaf\'ddfs';   //assaf'ddfs   对字符串中的'进行转义;echo "<br/>";echo 'assaf\\\'ddfs';  // assaf\'ddfs;  对字符串中的\' 进行转义;echo "<br/>";echo 'assaf\ddfs';   //  assaf\ddfs;    原型输出;echo "<br/>";echo 'assaf\\ddfs';  // assaf\ddfs;   对字符串中的\ 进行转义;echo "<br/>";echo 'assaf\\'ddfs';    //  报错,\\ 的意思只是对\的转义,' 在字符串中间,没有进行转义,与字符串两头的界定符' '相互冲突了;?>

3、双引号中的特殊字符:


     (1):\n 换行符:\n的作用是给源代码换行,不是在浏览器直接看到换行效果(浏览器网页用<br/>)。windows                    下是"\r\n"

<?php  $m = 'hello\nworld';      echo $m;        //  输出 hello\nworld,\n 没有进行转义;    $n = "hello\nworld";    echo $n;      // 输出 hello world ,其实第二个单词 world已经是在在第二行开头输出展示的,在浏览器中不能只管的看到,(浏览器中展示看到换行,可以用<br/>进行代替),但在源代码中可以看到;  ?>  


     (2):\r 回车符:  与\n不同的是: 回车是,打印头定位在左边界;换行是,告诉打字机把纸向下移一行。所                        以,\r\n代表了,回到左边界,并新起一行开始;

                  故:\r\n代表了最古老的换行,windows继承沿用了下来,Unix系统里现在用的是\n代表了换行,而Mac系                    统下,\r则代表了换行;

      
     


      (3):\t 水平制表符(相当于4个或者8个空格);也就是键盘上的Tab健;

      (4):\v垂直制表符;

      (5):\" 双引号;

      (6):\\ 反斜线;


综上:(1)单引号不能解析字符串中的变量;

           (2)单引号只能解析简单的转义:\'(')和\\(\);

           (3)双引号能解析较为复杂的转义:如\"(")、\$($)、\n\r、\t......等等;


4、php界定符(<<<);

     

    (1)、heredoc类型:


                 heredoc类似于字符串的双引号,里面的变量能被解析,转义较复杂的特殊字符;

        

<?php$sss = <<< TITLE               //  界定符“头”名称   可以是任意的(非文本内容中的)字符,只要与“尾”的标记名称保持一致即可;                               //  特别注意: 此代码是按原样输出展示的,即:开头的以及中间的 空格、缩进、等何种内容,都会被原样的输出展示出来(源码中能看到具体信息);似懂非懂规范化,               //   注意:  文本中不能有雨”界定符“一样的头尾标记(单词),即此超文本中不能有"TITLE"出现,(防止与头尾自动匹配、发生错误);sdfghgf\n\r \t;              // 与双引号类似,能解析比较复杂的转义和变量内容;                             //  原样输出,空格能被输出展示出来;TITLE;                    //界定符“尾”名称,1、必要要与"头"名称保持一致;2、必须以一个新的行单独表示“尾“名称(前面不能有空格、缩进等其他字符);、3、"尾"名称后以”;"结束语句;echo $sss;?>

   (2)、newdoc类型:


               newdoc类型和字符串中的单引号一样,不能解析本文中的复杂的转义和变量内容;

               他和heredoc区别就是界定符"头"标记用单引号包围起来;

<?php$sss = <<<'TITLE'//特别注意:界定符“头”标记后,决不能有任何的回车、空格、制表等内容;(加上这个注释后,程序则也会报错,即后面不能跟任何内容);似懂非懂规范化,           sdfghgf\n\r \t;                                      TITLE;// 新起一行,前面不能有任何内容;后面也不能有任何内容(由此注释的时候,程序也会报错);注释不能加这,否则程序报错;echo $sss;?>




原创粉丝点击