On Mon, Feb 2, 2015 at 4:27 PM, 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); >
It may not be applicable to a direct sort() call, but it's useful for higher level APIs. With a function you can create APIs of the form `function foo(..., $comparator = 'compare') { ... }`, which will default to the "standard" comparison function without having to specially handle it all over the place. Nikita