Выбор ответа Senior ООП, трейты и интерфейсы обновлено
Сравнение объектов
Вопрос
Что вернут $a == $b и $a === $b для двух разных объектов одного класса с одинаковыми значениями свойств?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: true и false. == сравнивает объекты по классу и значениям свойств (рекурсивно, что может быть дорого и даже зациклиться на циклических ссылках). === проверяет, что это один и тот же экземпляр.
Варианты ответа
trueиfalseправильный ответfalseиfalsetrueиtruefalseиtrue
Разбор
== сравнивает объекты по классу и значениям свойств (рекурсивно, что может быть дорого и даже зациклиться на циклических ссылках). === проверяет, что это один и тот же экземпляр. Для доменных объектов-значений лучше явный метод equals(), чем полагаться на ==.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «ООП, трейты и интерфейсы»
- Абстрактный класс или интерфейс в PHP
- Поверхностное клонирование
- Продвижение свойств в конструкторе
- Класс с интерфейсом и наследованием
- final и видимость констант
- Диспетчер событий с приоритетами
- Склад с исключениями предметной области
- Фигуры через интерфейс и абстрактный класс