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

本文介绍了PHP中单引号和双引号的区别,双引号可以解析变量,单引号则不行。在单引号字符串中,需要使用反斜线转义特殊字符如' '、' '。同时,文章讲解了PHP的界定符(heredoc和nowdoc),heredoc能解析变量和复杂转义,而nowdoc则类似单引号字符串。

1、单、双引号的区别:

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


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


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

<?php

echo '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;
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值