PHP比较运算符

比较运算符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回 true;如果为假,则返回 false。

PHP 中的比较运算符如下表所示:

例子 名称 描述
$a == $b 等于 如果类型转换后 $a 和 $b 的值相等,则返回 TRUE,否则返回 FALSE
$a === $b 全等 如果 $a 和 $b 不仅值相等,而且它们值的类型也相等,则返回 TRUE,否则返回 FALSE
$a != $b 不等于 如果类型转换后 $a 的值不等于 $b 的值,则返回TRUE,否则返回 FALSE
$a <> $b 不等于 与 != 相同,如果类型转换后 $a 的值不等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a !== $b 不全等 如果 $a 的值不等于 $b的值,或者它们值的类型不同,则返回 TRUE,否则返回 FALSE
$a < $b 小与 如果 $a 的值小于 $b 的值,则返回 TRUE,否则返回 FALSE
$a > $b 大于 如果 $a 的值大于 $b 的值,则返回 TRUE,否则返回 FALSE
$a <= $b 小于等于 如果 $a 的值小于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a >= $b 大于等于 如果 $a 的值大于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE
$a <=> $b 太空船运算符(组合比较符) 当 $a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的整型值。 PHP7开始提供.
$a ?? $b ?? $c    NULL合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。

其中,我们要重点区分一下“等于”和“全等”,等于==只是对两个变量的值进行了比较运算,而全等===不仅会对运算符两边表达式的值进行比较,而且还会对数据类型进行比较,只有两边的值和数据类型都相等时,运算结果才是 TRUE。

另外,“不等于”和“不全等”也是如此,不等于!=只对运算符两边表达式的值进行比较,而不全等!==不仅会比较运算符两边表达式的值,还会对值的类型进行比较,当两边的值或者数据类型有任意一个不相等时,运算结果才是 TRUE。

示例代码如下:
<?php
    $a = 10;
    $b = '10';
    if($a == $b){
        echo '$a 和 $b 的值相等!<br>';
        if($a === $b){
            echo '$a 和 $b 的类型也相等!<br>';
        }else{
            echo '$a 和 $b 的类型不相等!<br>';
        }
    }else{
        echo '$a 和 $b 的值不相等!<br>';
    }
?>
运行结果如下:

$a 和 $b 的值相等!
$a 和 $b 的类型不相等!


推荐文章
Unity 3D下载安装教程

Unity5.x软件的下载与安装十分便捷,游戏开发者可根据个人计算机的类型有选择地安装基于Windows平台或MacOSX平台的Unity3D软件。 考虑到国内的游戏开发者使用的计算机多是Windo

XML是什么?

万维网协会推出的一套数据交换标准——XML,是一种可扩展的标记语言,被设计用来传输和存储数据。XML可用于定义Web网页上的文档元素以及复杂数据的表述和传输。 ExtensibleMarkupLan

Python进程间通信的2种实现方法(Queue和Pipe)

在讲解多线程时,介绍了3种实现线程间通信的机制,同样Python也提供了多种实现进程间通信的机制,主要有以下2种: Pythonmultiprocessing模块下的Queue类,提供了多个进程之

vulkanrt是什么软件

VulkanRT是一款免费开放的、跨平台的2D和3D绘图应用程序接口(API)软件。拥有标准规范文档、驱动程序、SDK开发包、符合性测试,甚至是测试版的游戏软件支持,一整套解决方案。VulkanRT官

C++ STL queue容器适配器详解

和stack栈容器适配器不同,queue容器适配器有2个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据,如图1所示。 图1queue容器适配器 这种存储结构最大的特点是,最先进入q

JSP application.getRequestDispatcher()方法:根据指定路径名返回RequestDispatcher对象

该方法根据指定路径名返回一个RequestDispatcher对象。 语法: getRequestDispatcher(Stringpath) 参数说明: path:路径。 返回值:

GDB运行程序

当以“gdb+程序名”的格式启动gdb后,gdb会在PATH路径和当前目录中搜索和命令行中的程序名相同的文件。如何确定gdb是否读取到源文件,可使list命令(可以缩写成l),看gdb是否可以读出程序

Go语言Ratelimit服务流量限制

计算机程序可依据其瓶颈分为磁盘IO瓶颈型,CPU计算瓶颈型,⽹络带宽瓶颈型,分布式场景下有时候也会外部系统⽽导致⾃身瓶颈。 Web系统打交道最多的是⽹络,⽆论是接收,解析⽤户请求,访问存储,还是把响

MyBatis系统定义的TypeHandler

MyBatis内部定义了许多有用的typeHandler,如表1所示。 表1系统定义的typeHandler 类型处理器 Java类型 JDBC类型 BooleanTypeHan

JSP application.getAttribute()方法:获取属性值

该方法用于获取由name指定名字的application对象的属性的值。 语法: getAttribute(Stringname) 参数说明: name:要获取的属性的名称。 返回值:

Linux wc命令:统计指定文件中的字节数、字数、行数

wc命令我们在前面已经用到了,在这里详细讲解一下这个统计命令。命令格式如下: [root@localhost~]#wc[选项]文件名 选项: -l:只统计行数; -w:只统计单词数; -m:

AJAX发送GET和POST请求

在AJAX请求中,最常见的客户端传递参数的方式有两种:一种是GET请求,另一种是POST请求。POST请求是向服务器传送数据,而GET请求是从服务器上获取数据。GET请求传送的数据量非常小,而POST

啥叫大数据?

大数据(bigdata),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信

什么是内存交换

进程必须在内存中以便执行。不过,进程可以暂时从内存交换到备份存储,当再次执行时再调回到内存中(图1)。交换有可能让所有进程的总的物理地址空间超过真实系统的物理地址空间,从而增加了系统的多道程序程度。

Shell printf格式化输出命令

printf是awk的重要格式化输出命令,本节我们先介绍一下printf命令如何使用。 需要注意,在awk中可以识别print输出动作和printf输出动作(区别是:print会在每个输出之后自动加

pagefile.sys有什么用?

pagefile.sys即安装过程中创建的虚拟内存页面文件。这个文件的大小是自己系统虚拟内存设置的最小值的大小。假如虚拟内存的设置为800MB-1600MB那么你在自己的设定驱动盘下面就可看到大小为8

TiDB数据库的存储原理(非常详细)

由前述可知,TiDB架构是SQL层和TiKV存储层分离的,SQL层完成用户SQL请求的解析、验证等工作,并执行SQL的查询优化。 TiKV作为Key-Value数据库,可完成实际数据的存储,支持分布

Python使用字典格式化字符串

前面章节介绍过,在格式化字符串时,如果要格式化的字符串模板中包含多个变量,后面就需要按顺序给出多个变量,这种方式对于字符串模板中包含少量变量的情形是合适的,但如果字符串模板中包含大量变量,这种按顺序提

MySQL UPDATE:修改数据(更新数据)

在MySQL中,可以使用UPDATE语句来修改、更新一个或多个表的数据。 UPDATE语句的基本语法 使用UPDATE语句修改单个表,语法格式为: UPDATESET字段1=值1[,字段2=值2…

Linux中什么是ls?

LS(LINUX中ls命令)ls指令是Linux下最常用的指令之一,也是一条非常古老的命令,它最早可追述到Unix系统,甚至更古老的Multics下相同的命令。ls命令将每个由Directory参数指