php - PHP MongoIDs 对象比较 - 最佳实践
问题描述
有人可以解释一下,为什么 PHP 中两个 MongoDB\BSON\ObjectIds 的严格比较(===)返回 FALSE,尽管两个 id 都是具有相同 oid 的 MongoDB\BSON\ObjectId 类型?
下一个问题是关于处理这种情况的最佳实践。通过非严格比较(==)是否安全,或者是否有其他方法可以做到这一点(string)$id1 === (string)$id2
?
解决方案
当使用恒等运算符 (
===
) 时,当且仅当它们引用同一类的同一实例时,对象变量是相同的。
因此,您应该只使用标准比较运算符 ( ==
)。不需要字符串转换。
根据@jh1711:
BSON\ObjectId ... 实现了一个自定义的 object_compare 处理程序。但处理程序只是比较 id