【发布时间】:2018-06-16 07:04:12
【问题描述】:
使用 symfony 3.4 (php)。如何比较两个对象是否相同?
我的用例如下:我通过
获取登录用户$user = $this->get('security.token_storage')->getToken()->getUser();
并且我在通过函数调用提供的 url 中给出了一个用户 ID
public function showUserAction(Request $request, Member $userToDisplay) { ...
现在我想检查这两个用户对象是否相同 - 在这种情况下,我将重定向到显示登录用户个人资料的页面。
我可以做吗
if ($user === $userToDisplay) { ... }
?在这种情况下如何进行比较?我真正想要的是做类似的事情
if ($user->getId() === $userToDisplay->getId()) { ... }
,但我真的很喜欢第一个解决方案,因为它很简单——而且它确实有效。但这只是巧合,还是说这实际上是应该使用的教义?
我从 Java 知道我会实现 equals() 和 hashCode()-方法 - PHP 中有类似的东西吗?
在我上面的两个例子中,使用==和===有区别吗?
【问题讨论】:
-
第二个解决方案更精确,它显示了真正应该比较的内容,我想它更快。我会用它。
标签: php symfony compare equality symfony-3.4