PHP定义字符串的四种方式

一、简介

  在PHP中这门语言中,由于是弱类型语言,所以使用变量时不需提早定义便可使用。php

  咱们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。既然有这两种方式,那么他们之间确定是有区别的。html

  而且,除了单双引号定义字符串这两种方式外,php还增长了heredoc和nowdoc这两种语法糖进行补充。函数

二、单引号与双引号

  2.一、单引号

  在单引号中,任何特殊字符都会按原样输出【除\\、\‘将会被转义输出】性能

eg.学习

1 <?php
2 $var = 'this is a var!';
3 echo '666$var66六、\'、\"、\\、\n、\r、\t、\$';

 

  从上面例子中咱们能够明显看到,变量是没有被解析的;同时带反斜杠的转义字符仅仅只有单引号、反斜杠被转义输出了,其余的是直接输出。ui

 

  2.二、双引号

  在双引号中,遇到$将会解析该变量;this

  双引号中会转义反斜杠的转义字符;spa

转义字符代码 转义字符的含义
\ " 双引号
\ ' 单引号
\ \ 反斜杠
\ n 换行符
\ r 回车符
\ t 制表符
\ $ 美圆符号

eg. code

1 <?php
2 $var = 'this is a var!'; 
3 echo "666$var 66六、\'、\"、\\、\n、\r、\t、\$";

  由上面例子咱们能够知道,双引号中的变量被解析了,替换成字符串;其余带反斜杠的转义字符都进行了相应的转义。htm

  2.三、单双引号之间的区别

以上二者主要区别:
  一、 双引号会替换变量的值,而单引号会把它当作字符串输出。
  二、对于转义的支持
  三、性能速度问题,因为双引号中的字符串须要检测是否含有$符号修饰的变量,所以从理论上讲,单引号是比较快的。

 

三、heredoc与nowdoc

  3.一、heredoc

  heredoc能够理解为不使用双引号来定义字符串,但效果与使用双引号一致。【此时双引号至关于普通字符】

语法要求:

  一、开始标记和结束标记使用相同的字符串,一般以大写字母来写。

  二、开始标记后不能出现空格或多余的字符。

  三、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

  四、位于开始标记和结束标记之间的变量能够被正常解析,可是函数则不能够。

eg.

 1 <?php
 2 
 3 $var = 'this is suifeng';
 4 
 5 echo <<<"EOT"
 6 
 7 <!DOCTYPE html>
 8 <html>
 9 <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
11     <title>"随风"</title>
12 </head>
13 <body>
14 66666666666<br/>
15 "666666666"<br/>
16 $var<br/>
17 \$var<br/>
18 \n666<br>
19 </body>
20 </html>
21 
22 EOT;

  从打印的结果咱们能够看出:此时双引号仅仅只是一个普通字符;其余的效果和双引号的字符串效果一致。

  3.二、nowdoc

   同理,nowdoc是不使用单引号来定义,但效果至关于使用单引号来定义的字符串。【此时单引号至关于普通字符】

   语法同heredoc

eg.

 1 <?php
 2 
 3 $var = 'this is suifeng';
 4 
 5 echo <<<'EOT'
 6 
 7 <!DOCTYPE html>
 8 <html>
 9 <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
11     <title>"随风"</title>
12 </head>
13 <body>
14 '02020'<br/>
15 \'<br/>
16 66666666666<br/>
17 "666666666"<br/>
18 $var<br/>
19 \$var<br/>
20 \n666<br>
21 </body>
22 </html>
23 
24 EOT;

注意:

  定界符以后必须不能有任何字符【特别是空格字符有时会没注意到】,不然将会出错。

  如上例中的EOT后面有空格就会报这个错误:【Parse error: syntax error, unexpected '<<' (T_SL)】

 

(以上是本身的一些看法,如有不足或者错误的地方请各位指出)

 做者:那一叶随风   http://www.cnblogs.com/phpstudy2015-6/

 原文地址:http://www.cnblogs.com/phpstudy2015-6/p/8418822.html

 声明:本博客文章为原创,只表明本人在工做学习中某一时间内总结的观点或结论。转载时请在文章页面明显位置给出原文连接

相关文章
相关标签/搜索