逻辑运算| 学习笔记

简介: 快速学习逻辑运算。

开发者学堂课程【PHP 基础入门课程(上) :逻辑运算】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/709/detail/12607


逻辑运算

 

内容介绍:

一、了解逻辑运算的概念

二、掌握逻辑运算符的原理及应用

 

一、了解逻辑运算的概念

1、概念

逻辑运算:是针普通运算的结果的二次运算

  • 逻辑运算一般需要1个或者2个表达式参与
  • &&旷逻辑与运算(也作 and),左右两边结果都为 true 返回 true,否则返回 false
  • ||:逻辑或运算(也作 or),左右两边结果至少有一个 true 返回 true,否则返回 false
  • !:逻辑非运算,原来结果为 true 返回 false,原来结果为 false 返回 true
  • 逻辑运算(逻辑与和逻辑或)也称之为短路运算:即左边表达式如果已经能够确定结果,那么右边表达式就不再判定

a. 逻辑或:如果左边第一个表达式已经为真,第二个表达式就不会运算(结果为真)

b. 逻辑与:如果左边第一个表达式已经为假,第二个表达式就不会运算(结果为假)

  • 运算原理:将所有表达式的结果转换成布尔结果之后再进行运算

 

二、掌握逻辑运算符的原理及应用

1、示例

#简单示例

$a = true;

$b = false;

#逻辑运算

var_dump($a ll $b);   #true,因为 $a 为 true,所以整个结果为 true

var_dump($a && $b);    #false,因为 $b 为 false,所以整个结果为 false

var_dump( ! $a);  #false,因为 $a 为 true,取反得到 false

#通常参与逻辑运算的同时会有其他运算参与

$age = $_POST[ 'age ' ];

$res = $age < 18 ll $age > 65;

#先执行左侧的 $age < 18比较运算

#后执行右侧的 $age > 65比较运算

#两个比较结果进行|逻辑运算

#短路验证

$a = 100;

$a == 100 ll $b = 10;    #案例:实际开发不要出现运算中赋值

/*

1、比较左边: $a == 100,结果为 true

2、发现是逻辑或运算:结果已经出来:  true

3、忽略 $b = 10 运算

* /

var_dump($b);    #未定义的变量

案例

1 <?Php

2

3

4#逻辑运算

5

6 $age = 21;

7

8

9#判定年龄

10$res = $age < 18 |$age > 65;

11 var_dump($res, ! $res);\\结果为bool{ture}

12

13

14 #短路验证

15 $age > 65 l$b = 10;

16 / / var_dump($b);

17

18

19 #前面的操作如果不成功那么代码没有必要继续执行

20

21 $a = false or die('错误');\\结果为错误

22

23 echo $a; 

小结

1、逻辑运算符有三种:&&逻辑与、l|逻辑或、!逻辑非

  • &&:两个表达式都为真结果才为真,其他为假
  • ||∶两个表达式都为假结果才为假,其他为真
  • ! :一个表达式,对本身布尔结果取反

2、逻辑运算是对布尔结果进行比较

  • 本身就是布尔结果:直接运算
  • 本身非布尔结果:自动转换成布尔结果后再运算

3、逻辑运算通常与其他运算结合在一起运算

4、逻辑与和逻辑或也称之为短路运算

  • 逻辑与:第一个为假,第二个不运算(短路)
  • 逻辑或:第一个为真,第二个不运算(短路)
  • 在实际开发中,应该将大概率能判定整个结果的运算放前面

5、逻辑运算在实际开发的时候运用比较多,尤其是逻辑复杂的程序

相关文章
|
人工智能 算法 机器人
字节Coze优缺点分析
【2月更文挑战第16天】字节Coze优缺点分析
3738 2
字节Coze优缺点分析
|
Rust 数据可视化 安全
Rust性能分析工具概览:perf、flamegraph 与其他
Rust作为一种高性能、内存安全的编程语言,在构建大型系统和微服务时备受青睐。然而,优化Rust程序的性能需要有效的工具。本文将对Rust中常用的性能分析工具进行介绍,包括perf、flamegraph等,并探讨它们如何帮助开发者定位和解决性能瓶颈。
1461 1
|
缓存 负载均衡 算法
架构详解
每个系统都有服务的上线,所以当流量超过服务极限能力时,系统可能会出现卡死、崩溃的情况,所以就有了降级和限流。限流其实就是:当高并发或者瞬时高并发时,为了保证系统的稳定性、可用性,系统以牺牲部分请求为代价或者延迟处理请求为代价,保证系统整体服务可用。令牌桶方式(Token Bucket)令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。先有一个木桶,系统按照固定速度,往桶里加入Token,如果桶已经满了就不再添加。
353 0
|
弹性计算 负载均衡 算法
slb配置监听器
【10月更文挑战第18天】
301 3
|
编解码 测试技术 Python
【Python】已解决:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-1: ordinal not i
【Python】已解决:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-1: ordinal not i
3044 1
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
393 0
|
机器学习/深度学习 算法 TensorFlow
Python 强化学习实用指南:1~5
Python 强化学习实用指南:1~5
295 1
计算机网络:物理层下的传输媒体概览
计算机网络:物理层下的传输媒体概览
367 0
|
定位技术
代理IP速度变慢的原因是什么,要如何解决?
代理IP的网络延迟到底是什么原因造成的,我们又要如何解决这个问题呢?今天就和大家一起来探讨探讨。