When comparing PHP vs ASP.NET MVC, the Slant community recommends PHP for most people. In the question“What is the best programming language to learn first?” PHP is ranked 35th while ASP.NET MVC is ranked 36th. The most important reason people chose PHP is:
According to the [2015 Stack Overflow Developer Survey](http://stackoverflow.com/research/developer-survey-2015#tech) (26,086 people surveyed), PHP was the 5th most popular/used language at 29.7%.
Ranked in these QuestionsQuestion Ranking
Pro One of the most common languages
According to the 2015 Stack Overflow Developer Survey (26,086 people surveyed), PHP was the 5th most popular/used language at 29.7%.
Pro Lots of tutorials online
Pro Used by most common CMS platforms
Many clients are looking for an easy-to-update web site that's flexible and free. Drupal and Wordpress fill those needs very well.
Pro Most prominent language for web applications
Part of the de facto standard web application stack.
Pro Great third-party package manager
PHP standard library is somewhat subpar, but if you need plugins, language features, composer has them all( you can even puzzle together a custom framework from composer).
Since 7.x was released, PHP has become a pretty fast language.
Pro Lots of PHP frameworks available which help with development
PHP people love frameworks, and with frameworks such as Laravel, you can build a web app or API really fast (Facades, ORMs, scaffolding etc.)
Pro Great documentation
The framework has many build-in tools, and many packages have been written targeting the framework.
Pro Cross platform
.Net Core can work on any platform.
Pro Widely used
It's pretty easy to find a job with it and there's plenty of documentation and tutorials around.
Asp.NET Core on Linux is fast accordingly to TechEmpower benchmarks.
Pro Extensive documentation
There are a lot of resources available to get help.
Pro Asp.NET core provides balance between magic/agility and craftsmanship
You can get ordinary details quickly but with complete freedom to make your craft, knowing everything that is happening underneath the cloths. The highly modular system makes it possible to scale small applications to large ones with ease.
Pro It has more users than any other backend web framework
Getting your next contract is easy with this on your CV.
Con Poorly designed language
Despite its widespread use, PHP is generally looked upon poorly from a design point of view. The consistency of function names and function argument order, lazily and borderline non-functional implementation of object oriented programming, can only receive requests via POST methods, slow version adoption (the PHP you learn right now may not work on every webserver you'll work on), and a focus on "hacking things together" rather than "doing it right". These are all very common complaints when it comes to working with PHP. While not a bad language to learn, PHP is not at all a good language to learn first, as it will probably teach bad habits.
Con Immense catalog of insecure frameworks
The most serious security problems in websites on the web today are almost universally found in popular PHP frameworks, CMS platforms, libraries and code samples, almost all stemming from poor language design, bad tutorials and awful resources.
Con Most tutorials are out of date
A lot of very bad tutorials are still widely circulated among beginners, and these tutorials teach very poor programming practices.
Con Most resources are poorly-written
Few resources exemplify the "correct" or secure use of features.
Con Interpreter being too permissive
If you forget the dollar sign, the variable name will be converted to a string.
You need to have the plate to maintain a site.
Con Core and full ASP.NET are bit confusing sometimes
While not in feature parity (yet) they are still apart and support sometimes funky combinations of features - full ASP.NET has all the bells and whistles but doesn't offer cross platform so you may have to do some research what you really need. That being said, it got a lot better in 2.0.