php中的单引号、双引号和转义字符详解

2018-09-07 19:13

阅读:405

  PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。

  例如:

   <?php $name=string; echo 字符串 . $name; echo 字符串 . $name; ?>

  结果:

  字符串$name

  字符串string

  转义字符,顾名思义会将规定的语法用\来输出。但语法规定在不同的系统中转义字符的作用不同,例如:windows下的回车换行符用\r或\n,而Linux 这两就有很大的区别:\r光标回到行首,但还在本行; \n表示下一行,不会回到行首。

  PHP中的转义字符有:

   \n ==>换行

  \r==>回车

  \t==>水平制表符

  \\==> 反斜杠

  \$ ==>美元符号

   \ ==>单引号

   \ ==>双引号

   \[0-7]{1,3} 正则表达式匹配一个八进制符号表示的字符

   \x[0-9A-Fa-f]{1,2} 正则表达式匹配一个十六进制符号表示的字符

  在PHP中,可以使用 echo() 和 print() 语句发送数据到Web浏览器,也可以使用它们发送HTML 代码到Web浏览器。从技术上讲,echo() 和 print() 是语言构造,而不是函数,这里用了一对括号,从而有助于与变量以及PHP的其他部分区分开。这两个语句本质上没有什么区别,因此用那一个都不会产生任何问题。这依个人习惯。它们不区分大小字。

  在PHP中,理解单引号与双引号有什么区别是重要的。当所发送的数据中涉及到单引号和双引号时,在打印双引号时使用单引号,反之亦然,如:

   echo She said,How are you?; print Im just ducky.;

  或者,通过在有问题的字符前面放置一个反斜杠,对它进行转义:

   echo She said,\How are you?\ ; print I\m just ducky.;

  在PHP中,封闭在单引号内的值将照字面意义进行处理,而封闭在双引号内的值则将被解释。换句话说,把变量和特殊字符(见表1)放在双引号内将导致打印出它们所表示的值,而不是它们的字面值。如:

  $var = test;

  代码 echo var is equal to $var;

  将打印出 var is equal to test,而代码echo var is equal to $var;

  将打印出var is equal to $var。使用一个转义的美元符号,代码echo\$var is equal to $var;

  将打印出$var is equal to test,而代码echo \$var is equal to $var;

  将打印出\$var is equal to $var。

  表1 当在双引号内使用这些字符时,它们具有特殊的含义

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

  正如以上例子所说明的,双引号将用变量的值(test)代替它的名称($var),并用特殊字符表示的值($)代替它的代码(\$)。单引号总是准确地打印你输入的内容,除了转义的单引号(\)和转义的反斜杠(\\)之外,它们将分别被打印为一个单引号和一个反斜杠。

  提示:

  1、由于PHP将试图找出那些需要将其值插入到双引号内的变量,所以从理论上讲,使用单引号要快一些。但是,如果需要打印一个变量的值,则必须使用双引号。

  2、因为有效的HTML常常包括许多用双引号括住的属性,所以当利用PHP打印HTML时,使用单引号最容易。

  echo <table width=200 border=1 cellspacing=5 cellpadding=2 align=center>;

  如果想使用双引号打印出上面这段HTML代码,将不得不对字符串中的所有双引号进行转义,所以相对来说较麻烦。

  以上这篇php中的单引号、双引号和转义字符详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。


评论


亲,登录后才可以留言!