在程序语言中,无论是单引号还是双引号,都有很重要的作用,在PHP语言中也一样。跟ASP相比,PHP的引号更好用,在ASP中,要把数据代入变量就必须用双引号包含起来,而且里面要用到引号的情况下只能用单引号,不能用双引号,如果用了双引号就会把其当作前一个引号的结束符。
但在PHP中就没有这个限制了。代值进去变量,单引号和双引号都可以使用, 但要成对使用。
在PHP中,如果只是用于没有包含变量的文本型数据,单引号和双引号是没有什么区别的。但如果要使用变量,单引号和双引号就有区别了。
在PHP中,双引号里可以直接代入变量,而无需转定义或者其他符号,
如:
<ol class="dp-c"><li class="alt"><span><span class="vars">$b</span><span> = “cat”;</span><span class="vars">$a</span><span> = “This is a </span><span class="vars">$b</span><span>”;</span><span class="comment">//显示This is a cat</span><span> </span></span></li></ol>
单引号则不行,如果
<ol class="dp-c"><li class="alt"><span><span class="vars">$a</span><span> = ‘This is a </span><span class="vars">$b</span><span>’;</span><span class="comment">//则显示为:This is a $b。</span><span> </span></span></li></ol>
在运行效率上单引号和双引号也是有区别的,一般来说单引号的运行速度会比较快,双引号会比较慢,原因在于双引号要先查找语句中是否有变量,而单引号则不用,因此,如果语句中没有代入变量尽量采用单引号。这是写程序一种习惯,时刻想着提高程序的效率。
如果在语句中要转定义操作,那么就一定要用双引号了。
比如,转定义单引号时,写成这样的话:
<ol class="dp-c"><li class="alt"><span><span class="vars">$a</span><span> = ‘He’s name is Tom.’ ; </span></span></li></ol>
程序会把He’s name is Tom.原封不动的显示出来,如果这样写:
<ol class="dp-c"><li class="alt"><span><span class="vars">$a</span><span> = “He’s name is Tom.”; </span></span></li></ol>
程序就会显示:He’s name is Tom.
单引号是sql语句的绊脚石,在sql语句中的文本型数据都要用单引号来包含,因此数据中如果出现单引号,数据库会认为数据结束,那么后面的数据就会被认为是sql语句的其它组成部分,在数据库查询时当然会报错,所以写进sql语句的文本型数据一定要用addslashes()函数转定义单引号,读取数据时再用stripslashes()转回来。