比较运算| 学习笔记

简介: 快速学习比较运算。

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

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


比较运算

 

内容介绍:

一、了解比较运算的意义和工作原理

二、掌握常用比较运算符的使用

 

我们先思考这样一个问题,两个数,想知道谁大谁小,比如说两个人的年龄,那么此时我们就必须要进行一个比较,所以我们这里面程序里面就提供了较多的比较运算符,来帮助我们实现比较运算。


提问:如何知道两个数据的大小呢?

回答:比较运算。

 

一、了解比较运算的意义和工作原理

1、概念

比较运算:比较两个数据的大小或者长度,然后得出比较结果

  • 用于两个表达式的比较,比较的结果通常是 true 或者 false
  • >︰左边大于右边返回 true ,否则返回 false
  • <:左边小于右边返回 true ,否则返回 false
  • >=:左边大于或者等于右边返回 true ,否则返回 false
  • <=:左边小于或者等于右边返回 true,否则返回 false
  • <=>:左边大于右边返回1,等于右边返回0,小于右边返回-1\\

我们用这种的话,可以一次性代替前面的多种更加精确,但是,他可能对于我们的值,我们需要额外的去进行一些判定

  • ==:左边等于右边返回 true ,否则返回 false \\等于这个地方要

特别注意的一点是比较两个相同,因为一个等于是负值。

你左右两边放两个变量,如果用一个等号是把右边的赋值给左边,用了两个系统才会知道,这是一种判定。所以这块儿我们要特别注意,写比较的时候一定要写两个。

  • !=:左边不等于右边返回 true ,相等返回 false
  • ===:左边等于右边,且两边数据类型一致返回 true ,否则返回

false \\这个地方比较特殊,是全等,表示左边要等于右边,而且两边数据的类型要相同。

如果值相同,类型相同,返回 ture ,如果只有值相同,类型不相同,返回 false ,他跟等号的区别在于他要考虑类型,那不全等于也是一样的。

  • !==:左边不全等于右边返回 true,否则返回 false

 

二、掌握常用比较运算符的使用

1、示例

1  <?php

2

3 #比较运算

4

5  $a = 10;

6  $b= 5;

7  $c = '10';

8

9

10 #系统会自动转换成同一类型进行比较

11  echo '<pre> ';

12  var_dump($a > $b);    #true

13  var dump($a ==$b);    #false

14  var _dump($a==$c);    #true(值相同)

15  var_dump($a-= $c);    #false(类型不同)

那 18compare.php 发现 true  false true  false,跟我们前面运算的结果一样,说明我们的理解逻辑是没有问题的。

接下来,再看看所谓的飞船运算

16

17 var_dump($a <=> $b);    \\结果是 int{1}

18 var_dump($b <=> $a);    \\结果是 int{-1}

19 var_dump($a <=>$c);    \\结果是 int{0}

如果我们需要用到飞船运算的时候,我们是要根据这个结果,不能用简单的 ture 或 false 来判定他,用这种方式的话你会发现,不管是a大于b还是a小于b,它返回的是1和-1,而1和-1转化成布尔值他都是 ture ,所以此时不能直接这样判定。那么我们就需要用全等来进行一个比较。

20

21

22 var_dump(($a <=>$b) === 1);    \\结果是 bool{ture}

23 var_dump(($a <=>$b) >0);    \\结果是 bool{ture}

示例:

#定义数据

$a = 10;    #数字10

$b = 5 ;

$c = '10';  #字符串10

#基本比较运算

$res = $a > $b;

var_dump($res) ;   #布尔 true: 10 > 5,成立

#全等运算

$res = ($a == $c);

var_dump($res);   #布尔 true: 10 与'10'系统自动会转换成相同的格式比较,都是10,所以相等

$res = ($a === $c);

var_dump($res);    #布尔 false: 10与10值相同,但是10是数字,'10'是字符串,类型不同

#飞船运算

var_dump($a <=>$c);    #0:相等,10与10值相同,类型不同不影响

注意:

在 PHP 中比较运算比较特殊,通常系统会自动将类型转换成相同的然后进行比较,所以大家在使用==和===比较的时候,如果自己不够明确可以参照 PHP 操作手册中的类型比较表:PHP 操作手册->附录->PHP 类型比较表。

用==进行松散比较

image.png

用===进行严格比较

image.png

2、小结

1、比较运算就是比较两个数据的区别

2、飞船运算包含了大于、等于和小于三种运算

3、比较运算的结果普遍是 true 和 false,飞船运算符的结果除外

4、比较运算通常在实际开发中用于判定数据的有效性

  • 数值有大小可比较
  • 字符串:比较对应的 ASCIl 值

a. 大小写比较 ASCIl 值

b. 如果是相同字符串,谁第一个不同的大谁嬴

5、PHP 在进行比较时,会自动将不同类型转换成同一类型进行比较,所以这块需要特别注意

  • 松散比较==:只比较值即可
  • 严格比较===︰值和类型都比较
相关文章
|
JavaScript 数据安全/隐私保护 UED
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
导航守卫(全局,组件,路由独享)都有什么作用导航守卫在 Vue Router 中扮演着重要的角色,不同类型的导航守卫有着不同的作用:1. **全局导航守卫**: - **作用**:
175 0
|
SQL 存储 分布式计算
大数据组件-Hive部署基于derby作为元数据存储
大数据组件-Hive部署基于derby作为元数据存储
大数据组件-Hive部署基于derby作为元数据存储
|
物联网 Shell Linux
System 函数的实现|学习笔记
快速学习 System 函数的实现
System 函数的实现|学习笔记
|
前端开发
小视频源码,可控的跑马灯,无需焦点
小视频源码,可控的跑马灯,无需焦点
389 0
|
C# Windows
C# 在Word文档中生成条形码
C# 在Word文档中生成条形码 简介 条形码是由多个不同的空白和黑条按照一定的顺序组成,用于表示各种信息如产品名称、制造商、类别、价格等。目前,条形码在我们的日常生活中有着很广泛的应用,不管是在图书还是各种商品上都随处可见,扫描条形码就可以查询这个商品的信息,非常方便。
1193 0
|
3天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1050 151