关于PHP的==运算符比较规则
==是比较运算,它不会去检查比较的具体类型是否相等,只是单纯的根据php内置的转换规则来比较
===是全等运算,相对来说它的要求更为严格,比较过程不会进行类型转换,从类型到内容都要求相等
===运算符就不说了,它要求彻底一样才返回True,这里来聊一聊==运算符进行比较的一些特殊规则
1、空数组、空字符串、NULL、0、‘0’与False相比较结果均为True
2、NULL是空的意思,与空数组、空字符串、0相比较均为True
3、当字符串与数字进行比较时,php会将字符串转化为数字再进行比较,具体如下:
当字符串以数字开头(包括小数,但不包括科学计数法)时,取开头数字作为转换结果,没有则为0
echo '2424sdwf' == 2424; //返回True
echo '012aaa' == 12; //返回True
echo 'wsa' == 0; //返回True
echo '00.12aa' == 0.12; //返回True
4、当字符串内容为纯数字、科学技术法或十六进制数时(不包含无关字符),采用数值大小来进行比较,即便比较的双方都是字符串
echo ‘1.00’ == ‘1’; //返回True
echo ‘1e3’ == ‘1000’; //返回True
echo '0e2324' == '0e1111'; //返回True
echo '0e23d' == '0e234'; //返回False
echo '0x12' == '18'; //返回True
echo '0x12' == 18; //返回True
关于PHP的==运算符比较规则的更多相关文章
- C++运算符重载规则
运算符重载时要遵循以下规则: ( 1 ) 除了类属关系运算符 " . " .成员指针运算符 " .* " .作用域运算符 " :: " . ...
- C++重载运算符的规则
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载. 例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示3 ...
- JavaScript中的运算符种类及其规则介绍
JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等.这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScri ...
- C++学习之路—运算符重载(一)概念、方法及规则
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 1 什么是运算符重载 先来说下什么是重载吧 ...
- Javascript初学篇章_2(数据类型的查看和转换/运算符)
三.数据类型的查看和转换 1.查看数据类型 typeof 说明:typeo可以查看变量的类型. 语法:alert(typeof 变量名或数据): 2.转换成字符串 var married = fal ...
- C++学习26 运算符重载的概念和语法
所谓重载,就是赋予新的含义.函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作.运算符重载(Operator Overloading)也是一个道 ...
- [置顶] operator overloading(操作符重载,运算符重载)运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy)
operator overloading(操作符重载,运算符重载) 所谓重载就是重新赋予新的意义,之前我们已经学过函数重载,函数重载的要求是函数名相同,函数的参数列表不同(个数或者参数类型).操作符重 ...
- JavaScript运算符有哪些
JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等.这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScri ...
- 【C++知识汇总】运营商 & 运算符重载
[运算符] 在进行运算时,假设右括号的话我们知道先运算哪个,那假设没有括号了.算术运算符,关系运算符,逻辑运算符,位运算符.赋值运算符,++.--运算符等等,那么多的运算符.我们先算哪边 ...
随机推荐
- SpringBoot如何实现定时任务
写在前面 SpringBoot创建定时任务的方式很简单,主要有两种方式:一.基于注解的方式(@Scheduled)二.数据库动态配置.实际开发中,第一种需要在代码中写死表达式,如果修改起来,又得重启会 ...
- 数据应用的变与不变,ShardingSphere 正在影响未来数字体验的建设理念
近年来关于底层数据库的开源产品越来越多,它们也受到了许多资本的青睐. 伴随着移动互联网催生的数字化场景爆发,云计算.大数据等技术逐渐有了更加广阔的应用场景.在云计算和大数据经过十年的追赶式发展后,不只 ...
- 洛谷2494 [SDOI2011]保密 (分数规划+最小割)
自闭一早上 分数规划竟然还能被卡精度 首先假设我们已经知道了到每个出入口的时间(代价) 那我们应该怎么算最小的和呢? 一个比较巧妙的想法是,由于题目规定的是二分图. 我们不妨通过最小割的形式. 表示这 ...
- 洛谷4630APIO2018铁人两项(圆方树+dp)
QWQ神仙题啊(据说是今年第一次出现圆方树的地方) 首先根据题目,我们就是求对于每一个路径\((s,t)\)他的贡献就是两个点之间的点数,但是图上问题我并没有办法很好的解决... 这时候考虑圆方树,我 ...
- python函数参数类型:位置参数、默认参数、动态参数、关键字参数
1.位置参数:调用函数的时候传的参数,参数默认按顺序赋值,如果是指定那个参数赋值,不关注顺序.指定参数a=1,b=2 就在函数体内a=1,b=2 2.默认参数:在定义函数的时候,给某个参数设置默认值 ...
- Dapr + .NET Core实战(十四)虚拟机集群部署 mDNS + Consul
前面我们说了在单机模式下和K8S集群下的Dapr实战,这次我们来看看如何在不使用K8S的情况下,在一个传统的虚拟机集群里来部署Dapr. 1.环境准备 我们准备两台centos7虚拟机 Dapr1:1 ...
- Windows用cmd编译运行Java程序
https://www.runoob.com/w3cnote/windows10-java-setup.html
- 巧用 CSS3 filter(滤镜) 属性
原文链接:CSS3 filter(滤镜) 属性 效果预览 filter: grayscale(100%); 定义和使用 filter 属性定义了元素(通常是<img>)的可视效果(例如:模 ...
- seata代码控制回滚和临时挂起分布式事物
seata代码控制回滚和临时挂起分布式事物 一.说明 二.功能实现 1.手动回滚分布式事物 2.临时挂起分布式事物 三.完整代码 四 参考链接 一.说明 此处只是简单的记录一下,使用了 Seata后, ...
- linux下命令拼接
前言:我个five,一道特别简单的拼接题没有做出来,我吐了,不过也是涨知识了 直接切入正题了 linux命令是可以拼接的,也就是说在一个system("???")下我们的???可以 ...