• deaf_fish@lemm.ee
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    1 year ago

    There is usually a safer and more readable way to do what you want to do by chaining ternaries in most languages.

      • deaf_fish@lemm.ee
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        1 year ago

        Well, if you assume ternary operations work the same in PHP as in c and attempted to write the code demoed by this meme. You would end up with unexpected behavior. Maybe I should have said unexpected behavior instead of unsafe behavior.

        • Serdan@lemm.ee
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 year ago

          PHP is the only language in existence with a left associative ternary operator. Ignoring PHP, the operator has worked exactly the same way for decades. And even PHP has now fixed the operator.

          I don’t think it’s reasonable to avoid a very commonly supported pattern just because a single badly designed language implemented it wrong.

          • deaf_fish@lemm.ee
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            1 year ago

            Okay, even if I give you the unexpected behavior point. The readability problem remains. Switch statements or tables will work just fine and are easier to read.

            To be clear, I am fine with single ternary operations. I think nested ternary operations are harder to read and follow.

            • Serdan@lemm.ee
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              I agree you should use a switch where applicable, but ternaries are the expression equivalent of if-else statements. If I have two conditions and a default, and each branch simply evaluates to a value of the same type, I’ll probably just use a ternary.