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つの異なる検索関数を使用する必要があります。1つは独自の比較関数を持つクラス用で、もう1つはないクラス用です。 t。