Some of it is due to age. People like shiny, new things. PHP isn't shiny and new any more.<p>Some of it is due to security. Several of the things which made PHP very accessible to new developers also encourage poor security practices. For example, sending SQL queries to the database as a raw string, rather than a parameterized query, makes for injection vulnerabilities. There are ways to work around it, but often the 'unsafe' way is a lot easier and more obvious than the safe way.<p>Some of it is due to the early proliferation of beginner code. PHP was <i>the</i> language of the web right when every man and his dog were learning just enough code to make something work, then selling themselves as experts. That resulted in a lot of people writing very hacky spaghetti code, which rapidly became legacy.<p>Some of it is due to the switch from its procedural roots to its object oriented alternative (while maintaining backwards compatibility). This isn't really a great thing for a language to do, because it means that people who are less than completely clear as to how to solve problems in both procedural and OO versions of the language often end up writing a confusing mish-mash of code.<p>Most of this should not be a problem for a sensible, well learned and disciplined developer building a new system. (The security thing can still be a thing, but there are ways to handle it now).<p>PHP now has a fantastic culture of building fast, usable systems. Thanks to the big PHP CMSs and frameworks, there's also a lot of great interoperability (and extendability) patterns in PHP which don't really show up anywhere near as much as in other languages. It's extremely easy to deploy, it's well documented, and it's cheap to run.<p>If you like it, and it meets your requirements, then go for it.