I know that it will work, that is not the point. The method is no longer an anonymous function passed to the `usort` function - it is a public method in the `CHttpRequest` class, and as such I think that what it returns should be consistent.
If we have content-type entries:
a) `text/html; q=0.9; foo=bar`
b) `application/json; q=0.9`
c) `application/xhtml+xml; q=0.95`
Then, a) is preferred to b) because it has 1 more parameter (being equal in all other respects)
c) is preferred to a) by a long way, because its most important criteria (the q value) is higher
Using the simplified comparison function, `compare($a, $b)` gives `1` and `compare($c, $b)` gives `0.05`, which would seem to imply that `$a` would be preferred to `$c` since it gets a higher 'score', which is not the case.
So, in my opinion, the method should either return a properly weighted value (which the simplified comparison does not give), or a ternary value which is not open to misleading interpretations.