On Mon, Feb 2, 2015 at 8:27 AM, Andrea Faulds <a...@ajf.me> wrote: > Hey Nikita, > >> On 2 Feb 2015, at 13:49, Nikita Popov <nikita....@gmail.com> wrote: >> >> I've voted -1 because I think this should be a function and not an operator. >> compare($a, $b) is more obvious than $a <=> $b and it's not like writing >> comparison functions is such a super common use case that it needs the extra >> brevity of an operator. A function can furthermore be used as a callback, >> while an operator requires a wrapping closure. > > There’s no actual use for the bare comparison operation as a callback, > though: usort($foo, ‘compare’); would just be a slow version of sort($foo);
For this particular use-case you are correct, but usually I use custom callbacks for something more interesting, such as comparing one value and then comparing another based on the result. Perhaps the callback is higher-level: function (callable $comparator) { return function ($selector) use ($comparator) { return function ($a, $b) use($selector, $comparator) { return $comparator($selector($a), $selector($b)); }; }; } Maybe I'm the only one doing stuff like this, but it's not uncommon for me ^^ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php