Hey uhh so strcmp() huh pretty simple I mean what could be simpler:
Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.
Pretty straightforward right how could this possibly be messed up it’s freaking strcmp either the strings are equal or they ain’t right
GODS FREAKING DARN IT ALL TO HECK.
This is why I hate you, PHP! This is why I consider you an unmitigated failure, a pox on the good name of programming!
Dear language designer, pick one:
- A language with a very casual typing system;
- A language with standard API functions that cannot return an error indicating incompatible types were passed at runtime.
NOT BOTH. YOU CAN’T HAVE BOTH.
When I shared this on Twitter, legions of people showed up to say it was the programmer’s fault for using strcmp(). Riddle me this: is strcmp() part of the standard PHP API? Yes. Is it deprecated? No. Are there any caution notes in the official documentation? No. I don’t care how hard you try to blame the programmer, this is fundamentally bad language design. It’s a trap.
You can easily cut yourself on the standard API of many languages. The difference is that languages like C are labeled “sharp knife” and PHP is labeled “child-safe scissors.” Cutting yourself should not be this easy.
Dear sweet merciful angels I want to stab this language, twist the knife, yank out its still-beating heart and smash it against a rock.
(╯°□°）╯︵ ┻━┻ 0xabad1dea OUT.