Использование Symfony 3.4 (php). Как сравнить два объекта, одинаковы ли они?
Мой вариант использования выглядит следующим образом: я получаю зарегистрированного пользователя через
$user = $this->get('security.token_storage')->getToken()->getUser();
и у меня есть идентификатор пользователя, указанный в URL-адресе, который предоставляется через вызов функции
public function showUserAction(Request $request, Member $userToDisplay) { ...
Теперь я хочу проверить, являются ли эти два пользовательских объекта одинаковыми - в этом случае я бы перенаправил на страницу, которая показывает профиль вошедшего в систему пользователя.
Могу ли я просто сделать
if ($user === $userToDisplay) { ... }
? Как происходит сравнение в этом случае? Я действительно хочу сделать что-то вроде
if ($user->getId() === $userToDisplay->getId()) { ... }
, но первое решение мне очень нравится из-за его простоты — и оно действительно работает. Но является ли это простым совпадением или действительно так должно использоваться учение?
Я знаю из Java, что я бы реализовал equals()
и hashCode()
-методы - есть ли что-то подобное в PHP?
В моих двух примерах выше, есть ли разница между использованием ==
и ===
?