В программе PHP у меня есть массив некоторых настраиваемых объектов, и я хочу найти, содержит ли массив определенный объект. Конечно, я могу использовать 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 разные функции поиска, одну для классов, у которых есть собственная функция сравнения, и одна для тех, которые не имеют ' т.