Domanda

In un programma PHP ho un array di alcuni oggetti personalizzati e voglio trovare se l'array contiene un determinato oggetto. Ovviamente posso usare Array_Search, ma questo controlla se gli oggetti sono lo stesso oggetto, non se ha le stesse variabili. Quindi voglio essere in grado di creare la mia funzione di confronto per gli oggetti, che posso usare con il metodo Array_Search (o qualcosa di simile). Voglio essere in grado di fare qualcosa del genere:

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

È possibile qualcosa di simile? So di poter anche creare il mio metodo Array_Search che utilizza un metodo della classe, ma che dovrei usare 2 diverse funzioni di ricerca, una per le classi che hanno la loro funzione di confronto e una per quelle che non si t.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top