Robert Tamayo


PHP is a Chimera

I don't get the hate for PHP. It's a decent language with cool features like variable variables.

But after working with PHP professionally for 5 years, I've noticed some strange things about the language. 

I didn't notice anything that made me hate the language -- I just noticed some things that made me a little confused. Writing in PHP isn't like writing in Java, because Java is a programming language. PHP is not a programming language -- PHP is many programming languages. PHP is the Chimera of programming languages.

PHP is a Chimera

Much like the chimera in classical mythology, PHP is programming language made up of the combination of a lion, a goat, and a snake.

PHP doesn't follow the normal rules of programming. If you ask a normal programming language to give you the position of a substring within a string, they give you an integer. If the substring isn't found in the string, then they return -1. But if you ask PHP to give you the position of a substring within a string, you end up holding its beer while it gives you booleans, integers, and even integers that are also booleans.

If you ask for a substring position in PHP, you write "strpos". But if you ask for a string replacement, you write "str_replace". It has nothing to do with the two r's, either, because for an array it's "in_array". 

What's worse is the order you pass in the arguments.

                1st param       2nd param       3rd param
strpos          haystack        needle          (offset)
str_replace     needle          replacement     haystack
in_array        needle          haystack        (strictness)

Again, I don't get the hate for the language. It's effective. It's just when I write in PHP, I feel like I'm writing in 3 different languages at once.

Leave a Comment