关于if和&&

今日读代码,看到一行不理解:

$dbname && @mysql_select_db($dbname, $this->link);

 

初看这一行,没放到if条件中,也没有变量保存判断的结果,在QQ群中问了一下,有人指点说:php中 && 判断时,第1个条件不成立时,不判断后面的条件。不禁记起C中也有这样的情况。写了简单的例子测试了一下,确实如此。其实,上述的一行代码,可以转换为一个if语句,如下:

 

后来,研究了一下用&&和if的执行效率情况,从2次测试结果来看,用if的效率是要高于&&的。测试结果数据如下:

-----------循环:100000000 次

&& 方式:22秒
if 方式:20秒

----------- 循环:1000000000 次
&& 方式:212秒
if 方式:202秒

ps:上述跑的都是让第2行执行了的情况,即执行了&&后面的语句、if条件时的执行语句。对于&& 前第一个条件结果为true 、if条件不成立的情况暂没看

 

从上面的情况来看,还是尽量用if要好一点,用&&的话,降低了代码可读性(当然也跟阅读人的使用习惯有关,我很少用这个,所以咋一看,愣是不明白)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值