Blogger Information
Blog 14
fans 0
comment 0
visits 9628
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中的单引号与双引号区别
耿玉洁的博客
Original
1505 people have browsed it

1.引号的作用
最大的体现,我认为自然就是在定义字符串的时候,在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串。

$str1 = 'php';
$str2 = "php";
echo $str1,'<br/>';//输出 php
echo $str2,'<br/>';//输出 php
1
2
3
4
咦,有同学要说了,看这不是一样的吗,输出的是同样的结果。
不着急,咱们慢慢往下看!

2.单双引号最大的区别。
1.双引号解释变量,单引号不解释变量;所以单引号的执行效率比双引号要高
2.双引号可以解析所有的转义字符,单引号只能解析 \ 和 ' 本身的转义;
3.单双引号混合使用
1
2
3
【一】双引号解释变量,单引号不解释变量
$str1 = '求索网';
$str2 = '技术部';
echo '这是字符串 str1:','$str1','<br/>';//这是字符串 str1:$str1
echo '这是字符串 str2:',"$str2",'<br/>';//这是字符串 str2:技术部
1
2
3
4
看出来了吗。

双引号(“”)里面的字段会经过编译器解释,然后再当作HTML代码输出。
单引号(”)里面的不进行解释,直接输出。
至于说到效率问题:
对于使用了双引号的字符串,自然单引号的效率比较高一点(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)

【二】转义字符的解析
那咱们还是先来熟悉一下PHP中的转义字符吧
\是一个转义符,跟在\后面的第一个字符将变的没有意义或特殊意义。
那么什么是变的没有意义呢?
比如’是字符串的定界符,\’的话就使它失去了定界符的意义了,变为普通的’。
比如你可以通过echo ‘\”;输出一个单引号’,同时转义字符\也不会显示。
转义字符\只在在后来是特殊符号时才有转义的功能,而其它的时候,\也只是一个普通的字符。
来看一下常用到的转义字符。

\n:换行
\r:回车
\t:水平制表符,一个缩进
\v:垂直制表符
$:代表$本身
\:代表反斜线本身
\’:单引号本身
\”:代表双引号本身

来看活生生的例子吧!

//先来看看单引号
echo '求索网\\','<br/>';// --------------求索网\
echo ' \'求索网\' ','<br/>';//-----------'求索网'
echo ' \"求索网\" ','<br/>';//-----------\"求索网\" 
echo '求索网\t','<br/>';//---------------求索网\t
echo '求索网\n ','<br/>';//--------------求索网\n
echo '求索网\r','<br/>';//---------------求索网\r
1
2
3
4
5
6
7
问:你看出来什么端倪了吗?
答:发现单引号只能解析\与\’ 只能将这两个在字符串中 转义成 正常的斜杠与单引号,其他的都是原样输出。

//再来看看双引号
echo "求索网\\",'<br/>';// --------------求索网\
echo " \'求索网\' ",'<br/>';//-----------'求索网'
echo "求索网\t",'<br/>';//---------------求索网
echo "求索网\n",'<br/>';//---------------求索网
echo "求索网\r",'<br/>';//---------------求索网
1
2
3
4
5
6
问:双引号可以解析转义字符,可是对于\t,\n等这些为什么在浏览器上没有显示换行呢?
答:你查看页面源代码有换行的,制表符 而html页面的换行效果是标签才换行的 那种转义的换行和制表符就像记事本的enter键换行,是用于字符串的,和html页面无关,所以只有网页的源代码你才能看到换行,你要区分概念 以下示例: php代码: html页面 html源代码。

【三】单双引号混合使用
题意:我想要输出这样的结果 如下所示
this is $str:’求索网’

$str = '求索网';
echo 'this is $str:" \'$str\' " <br/>';
echo "this is \$str:'$str' <br/>";
1
2
3
问:我感觉两个echo语句都可以实现吧?
答:错,你可以动手试试,只有第二个才可以按照题意输出正确的结果
双引号里插入单引号,其中单引号里如果有变量的话,变量解释。
但是单引号里面就算有双引号,也不能解析变量。
所以对与想要在字符串里面的有变量的情况,外面尽量用双引号。
但是对于纯粹的字符串,里面没有要输出的变量的话,用单引号则比较好。
---------------------
作者:Tacks
来源:CSDN
原文:https://blog.csdn.net/Tacks/article/details/78724001
版权声明:本文为博主原创文章,转载请附上博文链接!

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post