php使用逻辑运算符提交程序运行效率

逻辑运算符只是将值进行逻辑运算吗?请看以下代码

先上一段我们项目常用代码,这段代码是平常的搜索列表的sql条件生成的一块,这里是使用运算符这样得到我们想要的结果

 $map = [];
        !isset($filter->name) || $filter->name !== '' && array_push($map, ['name', 'like', "%{$filter->name}%"]);
        !isset($filter->full_name) || $filter->full_name !== '' && array_push($map, ['full_name', 'like', "%{$filter->full_name}%"]);
        !isset($filter->sale_status) || $filter->sale_status !== '' && array_push($map, ['sale_status', '=', $filter->sale_status]);
一般我们是采用在使用if这样的判断语句 去做最终的结果处理
 if (isset($filter->name) && $filter->name !== '') {
            array_push($map, ['name', 'like', "%{$filter->name}%"]);
        }

下面我再列个简单案例说明一下

 $a = 1;
 $b = 2;
 $c = 0;
 $c == 0 && $c = $a + $b;
 echo $c; //3
 $c = 0;
 $c == 0 || $c = $a + $b;
 echo $c;  //0

原理分析

   

  • 首先我们要知道php的运算是从左到右去进行

  • 这个运算符的运行规则也需要熟悉,就是下表的运算判断需要熟悉不然很容易出问题

  • 注意:逻辑表达式可以是一个表达式、函数,但不能是语句组合或输出语句

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6
y=3 
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3 
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3 
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6
y=3
!(x==y) 返回 true

总结

上面的例子当然可以通过条件判断语句来实现,现在的情况一 个是减少了代码的量,最主要的是增加了程序的执行效率。掌握这一点的关键就是表达式的运行方向,是从左到右。主要其实还是基础要打好,怎么浪都不怕,掌握好这些运算符规则后,回头看文章头部的案例应该就可以轻易看懂了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值