RFC: SPL Comparator interface

From: Date: Tue, 07 Oct 2008 22:50:23 +0000
Subject: RFC: SPL Comparator interface
Groups: php.internals 
Request: Send a blank email to internals+get-40881@lists.php.net to get a copy of this message
Something that would be extremely useful is a comparator interface in SPL, which could be used to easily implement sorting for objects. Example: class Foo implements Comparator { // is numeric for this example public $bar; //implements compare method from Comparator interface public function compare($that) { //simple example; will return < 1 if this is less //than that; zero if they're equal; > 1 if this is //greater than that return $this->bar - $that->bar; } } Then, if I had an array of Foo objects, I could just call some kind of spl_sort function on the array which would use my comparator to sort them. I realize this can be kludged with usort(), but I think there should be a better, OOP-ier way to do it. I also realize that a similar effect could be achieved by defining an SPL PriorityQueue-ish collection rather than an array, but I think there ought to be a better way. Java has a Comparator interface which works in much the same way, if that helps my case at all. Jeremy

« previous php.internals (#40881) next »