• 运算符_03_逻辑运算符


    逻辑运算符

    概念:对表达式进行逻辑运算,运算出的结果是布尔类型的值。

    要求:参与逻辑运算的表达式的值必须是布尔类型的值,如果不是布尔类型,PHP会自动转换成布尔类型的值,然后再参与运算

    以下值被认为是false  其他的都是true
    1)布尔值false
    2)整数 0
    3)浮点型 0.0
    4)空白字符串(不包含空格 和 回车符) 和 字符串0
    5)没有成员的数组
    6)NULL

    //小技巧 通过强制转换 来查看一个值转成布尔值后是真还是假
    var_dump((bool)1);//通过强制转换来查看 转成布尔类型后的值

    1)逻辑与  and &&

    两边都为真,运算的结果就是真

    有一个为假,运算结果就为假

    $a = true;
    $b = true;
    var_dump($a && $b); //返回结果true
    $a = true;
    $b = false;
    var_dump($a && $b); //返回结果false

    中间隐含一个问题 “短路”

    2)逻辑或  or  ||

    两边有一个为真,运算结果就为真

    两边都为假的,运算结果才是假

    $a = true;
    $b = false;
    var_dump($a || $b);//返回结果true

    3)逻辑异或

    两边的值不一样  为真

    两边的值一样     为假

    $a = true;
    $b = true;
    var_dump($a xor $b);//打印:false
    
    $c = true;
    $d = false;
    var_dump($c xor $d);//打印结果:true

    4)逻辑非 !

    将原来表达式的值否定掉

    原来是true,结果就是false

    原来是false,结果就是true

    $a = true;
    var_dump(!$a);//打印:false

    短路问题

    $a = false;
    $b = 1;
    $a && ++$b;//++$b被短路了
    //前面$a已经是false了,后面的不重要了,就不执行了
    echo $b;//打印结果 1;

    我们的程序语言的设计者认为:
    只要有逻辑运算符 (逻辑与,逻辑或)那么运算结果就是就是一个true或者false
    那个这个整个运行的过程就不重要了!
    当然短路问题并不会遇到太多,就算遇到也不会有什么影响!

  • 相关阅读:
    CRL线程池调度和配置的一些细节
    迁移到iis7
    musicstore edit方法出错的原因和解决方法
    如何分离出EF的三份结构定义文件
    在GridView中 鼠标移动到行 该行颜色变换
    飘逸程序员的老家
    [转贴]ASP.NET中常用的26个优化性能方案
    【转贴】在ASP.NET中显示进度条ASP.NET
    在使用GridView中删除的按钮弹出提示框最简单的一中方法
    【转贴】ASP.NET图表控件
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/13900287.html
Copyright © 2020-2023  润新知