4.2 比较运算符

比较运算符的作用是通过对值进行比较,返回一个布尔型的结果(部分运算符除外)。
如果比较一个数字和一个字符串(或包含数字的字符串),会将该字符串先转成数字后在进行比较,严格模式(===!==)除外

// 定义变量
$foo = 30;
$bar = "30";

// 是否等于         true
$foo == $bar;

// 是否绝对等于       false
$foo === $bar;

// 是否不等于        false
$foo != $bar;
$foo <> $bar;

// 是否绝对不等于  true
$foo !== $bar;

// 是否小于         false
$foo < $bar;

// 是否大于         false
$foo > $bar;

// 是否小于或等于  true
$foo <= $bar;       

// 是否大于或等于  true
$foo >= $bar;

// 结合比较运算符
// 到底是小于(-1)等于(0)还是大于(1),此处返回 0
$foo <=> $bar;

// NULL 合并操作符
// 谁不为空? 严格判断NULL,哪怕是""也会认为不是NULL
$one = NULL;
$two = NULL;
$three = "four";
// four
$one ?? $two ?? $three;

字符串、数组、对象也能进行比较

不同类型之间的比较,可以参考下列规则

  • string|null <=> string ,先将 NULL 转成 ''
  • bool|null <=> any,先转成BooleanTRUE > FALSE
  • object <=> object,限相同的类,如没定义规则就按数组的方式一样比较属性
  • string|resource|number <=> string|resource|number,先转成数字,再按数学比较
  • array <=> array,限键相同,成员少的小,依次比较属性
  • object <=> otherobject最大
  • array <=> other,除object外,array最大。

记得不要比较浮点数,否则会有意想不到的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,786评论 18 399
  • 昨夜微醺,入得周公草庐,喜窥嫡仙神踪,仗酒壮怀诗情泛滥,取庐前池鲤激烈夺食之景,泼墨挥毫,即兴作绝句《食为天》: ...
    静晚阅读 394评论 0 1
  • 地球之所以会变成今天这个样子,地球人之所以会这样不快乐,是因为你们意识层次的进化一直没办法有突破性的提升。如果现在...
    感恩之旅阅读 273评论 0 0
  • 凝香劫 作者 / 狼烟诗影 (一) ...
    狼烟诗影阅读 896评论 0 2