Нет, это не так.Обычный способ добиться этого - использовать метод equals()
, но никакого магического метода не существует.Вам придется позвонить вручную.Например:
<?php
class User
{
private $id;
public function __construct($id)
{
$this->id = $id;
}
public function getId()
{
return $this->id;
}
public function equals(User $user)
{
return $this->getId() === $user->getId();
}
}
$user1 = new User(1);
$user2 = new User(2);
var_dump($user1->equals($user2)); // bool(false)
var_dump($user2->equals($user1)); // bool(false)
?>
Что, я думаю, мало чем отличается от:
var_dump($user1 == $user2);
var_dump($user2 == $user1);
В любом случае, мой пример будет работать даже с использованием оператора ==
, так как он будетсравните значения всех свойств.