Josh K has pointed out some pretty good points, so I wont reiterate that. Instead I'll add some more.
It's interpreted.
Just FTP/SSH into your account, change the stuff needs to be changed and presto! No need to compile, to deploy, to restart the server.
Of course this is something that is compelling for people working in non formalised development environment, with no version control, automated tests, automated builds etc.
It is in fact easy
Seriously. At least for the real beginner it's really easy. So easy that when my cousin expressed an interest in learning how to program, I bought him a Python book instead. PHP's conventions might teach you some bad habits.
It is capable
I have a life long, mutual feud with C/C++ languages. Somehow we don't like each other. While at university, when I had to do projects involving computations, I would choose PHP over C++ and in each case I could achieve what I intended. Maybe the program execution was in fact slower than if it was written in C++, but it was not a factor in this case.
Anyway: neural networks, genetic algorithms, fuzzy logic... I did all of these on PHP. Yes... people had been telling me I was weird.
(admirers lang X/haters lang X) = AcmeConstant . AgeFactor(Lang X Age)
. Where AcmeContant is unchanged for all languages <(;-) – Martin York Jan 12 '11 at 17:51