В программе PHP у меня есть массив некоторых пользовательских объектов, и я хочу узнать, содержит ли массив определенный объект.Конечно, я могу использовать array_search, но при этом проверяется, являются ли объекты одним и тем же объектом, а не имеет ли он одинаковые переменные.Поэтому я хочу иметь возможность создавать свою собственную функцию сравнения для объектов, которую я могу использовать с методом array_search (или чем-то подобным).Я хочу иметь возможность сделать что-то вроде этого:
class foo
{
public $_a,$_b;
function __construct($a,$b)
{
$this->_a = $a;
$this->_b = $b;
}
function __equals($object)
{
return $this->_a == $object->_a;
}
}
$f1 = new foo(5,4);
$f2 = new foo(4,6);
$f3 = new foo(4,5);
$array = array($f1,$f2);
$idx = array_search($f3,$array); // return 0
Возможно ли что-то подобное?Я знаю, что могу также создать свой собственный метод array_search, который использует метод из класса, но тогда мне придется использовать 2 разные функции поиска, одну для классов, которые имеют свою собственную функцию сравнения, и одну для тех, у которых нетт.