Honestly, I’m quite fond of PHP. First, the community on php.net is exemplary for its helpfulness and their members’ excellent manners.
I am also a great fan of web applications in general. From a developer’s point of view, there is no easier way to provide users with good-looking and functional interfaces and PHP is just the simplest way to build dynamically created web-sites. It just gets the job done.
On the other hand, it has a flat learning curve: Even when you know very little, you can still do a lot of useful things.
Many people though, criticize PHP, I reckon, often unfairly.
Some say, it lacks unifying design principles. This is somewhat true, but rather than a weakness, I consider this to be a strength. The language doesn’t constrain your creativity, but lets you choose which path you consider to be the best.
Others complain about the supposed ugliness of the code which is bullshit. It’s totally up to the programmer whether she writes in a readable and comprehensive style or not. A C program full of macros is unbeatable when it comes to obfuscate the programmer’s intentions.
The main complaint, though, seems to be that there is a lot of extremely buggy PHP code in productive use. This is also true, but I believe, mainly due to the fact that many of the people writing PHP code aren’t real programmers. Again, I don’t think that they or the language are to blame for this. We all have to learn and in the end, there’s hardly any program of a certain complexity which is free of errors. In PHP, at least, they are often easier to spot and fix than in compiled languages with the advantage that you correct them in one place, the server, whilst an updated binary executable has to be rolled out to all clients.
I reckon, the last point has to do a lot with envy: Real programmers often had to learn the ropes in a very hard way in order to do anything useful whilst the perceived quiche eaters of PHP managed to produce at least something useful after a couple of days of learning.