php单引号和双引号的区别详解

最近在收集有关于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有关面试题,欢迎在评论区留言分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值