Re: Why PHP sucks - farce or is there a bit of truth?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ternary operator works the same in every language I've encountered… you can expand every such statement to an if-then-else if it makes you feel better. Not every operator in math is transitive, either. a - b is not the same as b - a, for example.


On Oct 17, 2013, at 7:51 PM, Tim-Hinnerk Heuer <th.heuer@xxxxxxxxx> wrote:

> No, but when you add stuff it gets the same result from left to right as
> from right to left.
> So, the ternary operator is more related to logic, even though logic
> belongs to math.
> 
> Tim-Hinnerk Heuer
> 
> Twitter: @geekdenz
> Blog: http://www.thheuer.com
> 
> 
> On 18 October 2013 13:49, Daniel <danielx386@xxxxxxxxx> wrote:
> 
>> On Fri, Oct 18, 2013 at 11:46 AM, Tim-Hinnerk Heuer <th.heuer@xxxxxxxxx>
>> wrote:
>>> Hi,
>>> 
>>> I've been a PHP programmer for several years now and have a bit of a
>>> love-hate relationship with it. It's great for doing something quickly,
>>> especially web stuff, but recently I have heard people moaning about PHP
>> a
>>> lot and did some research and found this:
>>> 
>>> http://webonastick.com/php.html
>>> 
>>> One thing I had to get my head around is this:
>>> The ternary operator
>>> <?php
>>>    $foo = 1;
>>>    print(($foo == 1) ? "uno" : ($foo === 2) ? "dos" : "tres");
>>>    print("\n");
>>> 
>>> outputs
>>>>> dos
>>> 
>>> because the operator is left-to-right associative instead of
>> right-to-left
>>> as in other languages. I was thinking there must be a reason for this.
>>> Speed? Is it faster to evaluate/implement all operators as left-to-right?
>>> 
>>> I noticed that the above could easily be fixed by saying:
>>> 
>>> <?php
>>>    $foo = 1;
>>>    print(($foo == 1) ? "uno" : (($foo === 2) ? "dos" : "tres"));
>>>    print("\n");
>>> 
>>> outputs
>>>>> uno
>>> 
>>> Was this a deliberate design decision or is it a flaky implementation of
>>> the ternary operator?
>>> 
>>> Tim-Hinnerk Heuer
>>> 
>>> Twitter: @geekdenz
>>> Blog: http://www.thheuer.com
>> 
>> 
>> Maybe it just me but I look at it the same as math, you don't add
>> something up from right to left do you?
>> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux