Сравнение объектов PHP MongoIDs - лучшая практика - PullRequest
0 голосов
/ 10 сентября 2018

Может кто-нибудь объяснить мне, почему строгое сравнение (===) двух MongoDB \ BSON \ ObjectIds в PHP возвращает FALSE, хотя оба идентификатора имеют тип MongoDB \ BSON \ ObjectId с одинаковым oid?

Следующий вопрос касается наилучшей практики для рассмотрения этого случая. Безопасно ли это делать с помощью нестрого сравнения (==) или есть другой способ сделать это, например? (string)$id1 === (string)$id2

1 Ответ

0 голосов
/ 11 сентября 2018

С соответствующей PHP-документацией :

При использовании оператора идентификации (===) переменные объекта идентичны тогда и только тогда, когда они ссылаются на один и тот же экземпляртот же класс.

Таким образом, вы должны просто использовать стандартный оператор сравнения (==).Приведение строк не требуется.

Per @ jh1711 :

BSON \ ObjectId ... реализует пользовательский обработчик object_compare.Но обработчик просто сравнивает идентификаторы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...