PHP: Введение в ООП
2026-02-26 19:06 Diff

Сравнение объектов обладает некоторыми особенностями, о которых надо знать.

Самая простая ситуация: объекты разных типов никогда не равны.

Если же тип один и тот же, то возникает два варианта: один для оператора нестрогого сравнения и другой — для строгого.

Нестрогое сравнение (==)

Два объекта считаются равными, если они имеют одинаковые свойства, и их значения совпадают.

Но что будет, если значением свойства объекта является другой объект?

Если вложенные объекты совпадают по правилу описанному выше, то исходные объекты также считаются равными. Другими словами, правило — рекурсивно, и проверка идёт по всем вложенным объектам.

Строгое сравнение (===)

Строгое сравнение, напротив, проверяет только совпадение значения указателей. Объекты строго равны, только если это один и тот же объект.

Своё сравнение

На практике всё же объекты устроены сложнее и сравнивать их стандартными средствами не получается. Например, сравнение может происходить на основании идентификаторов, взятых из базы данных. В таких случаях остаётся только один способ — написать свою собственную функцию (или метод) сравнения. Подробнее о методах далее в курсе.