首页 > 解决方案 > PHP MongoIDs 对象比较 - 最佳实践

问题描述

有人可以解释一下,为什么 PHP 中两个 MongoDB\BSON\ObjectIds 的严格比较(===)返回 FALSE,尽管两个 id 都是具有相同 oid 的 MongoDB\BSON\ObjectId 类型?

下一个问题是关于处理这种情况的最佳实践。通过非严格比较(==)是否安全,或者是否有其他方法可以做到这一点(string)$id1 === (string)$id2

标签: phpmongodbcomparison

解决方案


相关的 PHP 文档

当使用恒等运算符 ( ===) 时,当且仅当它们引用同一类的同一实例时,对象变量是相同的。

因此,您应该只使用标准比较运算符 ( ==)。不需要字符串转换。

根据@jh1711

BSON\ObjectId ... 实现了一个自定义的 object_compare 处理程序。但处理程序只是比较 id


推荐阅读