German Geek is me btw. :-) I have that email as well and must've replied to the email that got to that account... What happens when you over-automate. I wouldn't use a 2-factor ternary operator, especially after this discussion, lol. Saw that for the first time on that website. I personally hate when people obfuscate just to make shorter lines or seem smarter. Code is edited by different people if it is useful or good. Tim-Hinnerk Heuer Twitter: @geekdenz Blog: http://www.thheuer.com On 19 October 2013 16:32, German Geek <geek.de@xxxxxxxxx> wrote: > I agree, it's not a bug, just a different design or interpretation of the > statement. I further agree that the programmer should put parentheses > around statements if visually ambiguous. Also, from left to right seems > more logical. That it happens in this particular case that the result seems > counter-intuitive doesn't mean it is illogical. I just had trouble > understanding at first why it would output 'two' instead of 'one' when the > contents of the variable clearly was 1. > > A different construct could be used better used in a case where a variable > can have more than 2 values. elseif or even a switch, though more verbose, > is probably much more readable. > > Sorry, Robert, for the huge font. I was sure I had reduced it before > sending in gmail... Copy/paste from the website made it that big. > > I raised the issue also to get a better understanding what other php > programmers think and I much better understand some things now. > > > Tim-Hinnerk Heuer > > Twitter: @geekdenz > Blog: http://www.thheuer.com > > > On 19 October 2013 08:20, David Harkness <david.h@xxxxxxxxxxxxxxxxx>wrote: > >> On Fri, Oct 18, 2013 at 12:02 PM, Jim Giner <jim.giner@xxxxxxxxxxxxxxxxxx >> >wrote: >> >> > That said I see the 'proper' expectation of this statement: >> > >> > $foo = $a ? $b : $c ? $d : $e; >> > >> > as: >> > >> > $foo will be the result of "if $a then $b else if $c then $d else $e;" >> > >> > Why php interprets it differently is just not logical to me. >> >> >> While I agree that PHP probably should have matched other languages like C >> and Java, a) I have never needed to use this double construct, b) I >> wouldn't even if it made sense due to the likely confusion, and c) PHP has >> the Elvis operator ($x ?: $y) which is pure awesomeness so I can forgive >> it's wonky ternary precedence. >> >> Far more troublesome with PHP is the mixed parameter ordering in the >> built-in functions. The quote on the top of that page says it all. I'm >> constantly having to rely on code-completion for functions I've used for >> years to make sure I'm getting the order right. Haystack before needle or >> needle before haystack? Both! :( >> >> Cheers, >> David >> > >