最近在收集有关于PHP的面试题,其中有一道题是:
php中单引号和双引号包含字符串的区别正确的是:
A:单引号速度快,双引号速度慢
B:双引号速度快,单引号速度慢
C:单引号里面可以解析转义字符
D:双引号里面可以解析变量
(答案在文末)
在日常开发中,一些新手码农很容易就会忽视单引号和双引号之间的区别,以为一样的。其实是不同的
首先第一点:双引号解释变量,单引号不解释变量;双引号里插入单引号,其中单引号里如果有变量的话,变量解释;
下面我们看个例子:
$a = 'hello';
$str1 = '$a world'; //使用单引号
$str2 = "$a world"; //使用双引号
var_dump($str1); //运行结果:$a world
var_dump($str2); //运行结果:hello world
从上面的例子看出$a在单引号里面是不会进行转义的
第二点:双引号转义特殊字符(/r/n之类的),单引号不解释转义字符。
第三点:效率,单引号被系统默认是普通字符串类型,会直接编译,但是双引号中有可能会存在变量和转义字符,所以通常会先遍历一遍字符串,将其中的变量编译完才输出。所以单引号的编译效率比双引号的快。
再回到上面的题目,A和B答案中的速度描述是错误的,应该改成效率才对。
正确答案是:D
最近乃至以后都会不断收录各种PHP有关面试题,欢迎在评论区留言分享