Re: [RFC] Combined Comparison Operator
| From: | Pierre Joye | Date: | Thu, 13 Feb 2014 17:14:03 +0000 |
| Subject: | Re: [RFC] Combined Comparison Operator | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-72559@lists.php.net to get a copy of this message | ||
Hi David,
Thanks for this proposal.
On Feb 13, 2014 10:30 PM, "Davey Shafik" <davey@php.net> wrote:
>
> On 2/13/14, 2:19 AM, Christian Stoller wrote:
>>
>> Davey Shafik <davey@php.net> wrote:
>>>
>>> This adds a new operator "(expr) <=> (expr)" that returns 0 if both
>>> operands are equal, 1 if the left is greater, and -1 if the right is
>>> greater.
>>>
>>> It works with all types (just as well as <, <=, >=, > work) and is great
>>> for usort() callbacks for example.
>>>
>>
>> Why not using
$a - $b instead of $a
>> <=> $b?
>>
>>
>> Simon J Welsh <simon@simon.geek.nz> wrote:
>>>
>>> The only real case I see for this is to save some boilerplate when
>>> dealing with arrays. Strings have strcmp(), numbers have subtraction
>>> And when you’re sorting objects, you probably want to be doing
>>> the comparison on some string/numeric property.
>>>
>>
>> Agreed! It would make more sense to write a comparison function for
arrays/objects.
>>
>>
>> Best regards
>> Christian
>>
>
> This operator DOES work on arrays/objects. The fact it also works on
scalar values is a bonus if that's how you want to look at it :P
This new operator doea not look too useful to me but here is one comment
about objects handling:
It compares only values, seems to be the only solution but the actual usage
for that is rather inexistent as it compares apples and pears, or am I
missing something?
Cheers,
Pierre