La surcharge PHP est équivalente
-
07-11-2019 - |
Question
Dans un programme PHP, j'ai un tableau de certains objets personnalisés, et je veux trouver si le tableau contient un certain objet. Bien sûr, je peux utiliser Array_Search, mais cela vérifie si les objets sont le même objet, pas s'il a les mêmes variables. Je veux donc pouvoir créer ma propre fonction de comparaison pour les objets, que je peux utiliser avec la méthode Array_Search (ou quelque chose de similaire). Je veux pouvoir faire quelque chose comme ça:
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
Est-ce que quelque chose comme ça est possible? Je sais que je peux également créer ma propre méthode Array_Search qui utilise une méthode à partir de la classe, mais que je devrais utiliser 2 fonctions de recherche différentes, une pour les classes qui ont leur propre fonction de comparaison, et une pour celles qui ont lieu ' t.
Pas de solution correcte