The thing about PHP's badness is that it's not really about specific things. Every language has quirks. The reason PHP sucks is that quirks are the rule, not the exception. It's extremely inconsistent and unpredictable. It's a hodge podge mess that was thrown together over many years without any regard for conceptual consistency. To get anything done you have to constantly refer to documentation for trivial things like parameter order or calling convention or tedious things like that. The language has no soul and slaps together whichever features they thought would be easiest to implement.
This is the background of why PHP is bad. Now, to make it even worse, this background caused good programmers to gravitate away from PHP. Sure, they might have to do it for their day job to pay the bills, but they don't enjoy it, and they don't contribute high quality libraries. They're busy doing that for languages they actually enjoy using. Their surplus mental capital is being spent elsewhere. They expend the bare minimum of thought on their PHP work because it's painful to expend any more, and hey, everyone else is doing it too.
So the bad language scared away good programmers, which lead to a dearth of high quality libraries, which again scares away more good programmers. It's a vicious cycle.
Here's a fun story. One time, I needed to do some time zone arithmetic. Not realizing that it was in PHP's standard library, I used a PEAR library which was incredibly out of date. I found a blatant bug which caused horrible side effects by mangling the $TZ environment variable. Doing a time zone calculation by manipulating an environment variable screams *hack*, but whatever, I worked around the bug and submitted a bug report and went along my way. My bug was never responded to, of course. Later, I realized the PEAR time zone library had apparently been pulled into PHP itself, pretty much wholesale, so I was able to drop the dependency, which was nice. I also figured the bug was probably fixed! Woohoo! But it turns out that in the PHP version, the same bug still exists. You can't do time zone calculations without triggering a massive bug which alters the state of your program and causes any date/time-related code after it to be completely wrong. And no one has noticed or fixed this in *years*.
Another interesting thing is searching for "<language> time zone." What do I get with Python? I get well-written third-party libraries, thoughtful blog posts, official bug reports, Stack Overflow posts. These are all things I want to find and are highly useful.
What do I get when I do the search for PHP? Crap. I get the terrible official documentation, I get low-quality forum posts on sites I've never heard of, where ignorant people teach each other hacks that no one should be doing; I get low-quality "blog" posts on big ad-filled commercial websites that probably paid someone $2.00 to write the article, and I get freaking w3schools, straight out of 2002.
Of course, this is just one anecdote, and you could say it's not representative. But my point is that it is! Working with PHP consists of hackish, ugly workarounds. All. The. Time. And the community is representative of that. I know the "X is a ghetto" thing is passe now, but PHP is a ghetto.