PHP MongoIDs对象比较 - 最佳实践

问题描述 投票:0回答:1

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

下一个问题是关于处理此案例的最佳做法。通过非严格比较(==)进行安全是否安全,或者是否有其他方法可以做到这一点,例如: (string)$id1 === (string)$id2

php mongodb comparison
1个回答
2
投票

来自the relevant PHP documentation

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

所以你应该使用标准比较运算符(==)。不需要字符串转换。

对于@jh1711

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

© www.soinside.com 2019 - 2024. All rights reserved.