给李书记点个赞吧
php中的逻辑运算符

php中的逻辑运算符

作者:李书记php 时间:2016-11-30 分类:学习php 评论:1 条 浏览:1397

逻辑运算符都是针对“布尔值”进行的运算。如果不是布尔值,就会转换为布尔值进行;布尔值只有2个:true,false。

  基本运算规则(真值表):

  逻辑与规则:

true && true ==>> true

true && false ==>>false

false && true ==>>false

false && false ==>>false

总结:只有2个都是true,结果才是true。只要有一个是false,结果就是false

  逻辑或规则:

true || true ==>> true

true || false ==>>true

false || true ==>>true

false || false ==>>false

总结:只有2个都是false,结果才是false。只要有一个是true,结果就是true

  逻辑非规则:

!true ==>> false

!false ==>> true

逻辑运算符的“短路现象”:

<?php
//此函数只是为了说明要对2个数据(x,y)进行
//复杂的计算,然后返回计算结果
function f1($x, $y){
    $m1 = $x*2;
    $m2 = $y*3;
    return $m1 + $m2;
}
$n1 = 3;
$n2 = 4;
//if判断语句写法1:
if( $n1 > $n2  &&  f1($n1, $n2)  > 20 ) {
    //这里完成某种任务1
}
else{
    //这里完成另一些任务2
}
//if判断语句写法2:
if( f1($n1, $n2)  > 20  &&  $n1 > $n2 ) {
    //这里完成某种任务1
}
else{
    //这里完成另一些任务2
}
//写法1和写法2,最终计算结果是一样的!
//但写法1会具有优势:它有时候可能不需要进行“复杂”计算
//就可以得到判断结果,这就是“短路”现象
//而写法2却总是先去进行“复杂”计算,显然属于消耗资源行为
//函数f1表示一个复杂的计算:
$n1 = 3;
$n2 = 2;
//if判断语句写法1:
if( $n1 > $n2  ||  f1($n1, $n2)  > 20 ) {
    //这里完成某种任务1
}
else{
    //这里完成另一些任务2
}
//if判断语句写法2:
if( f1($n1, $n2)  > 20  ||  $n1 > $n2 ) {
    //这里完成某种任务1
}
else{
    //这里完成另一些任务2
}
//写法1和写法2,最终计算结果是一样的!
//但写法1会具有优势:它有时候可能不需要进行“复杂”计算
//就可以得到判断结果,这就是“短路”现象
//而写法2却总是先去进行“复杂”计算,显然属于消耗资源行为

结果:如果一个语句中,通过与运算需要进行多项判断,而且不同的判断具有明显不同的“复杂程度”,则我们应该将简单的判断放在前面,这时候我们就可以利用短路现象以达到提高效率的目的。

 

  
  1. 增达网 2016-12-1 08:24 #1 回复TA

    今天办公室里几个男女在讨论用避孕套的好处和坏处,男方坚决抵制避孕套,女方大力支持使用避孕套,双方各持一词不分伯仲,这时我们办公室一个大姐问我平日用套套吗?我说:我……我…我都是包皮打个结。当时讨论就结束了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注