Having written code in both PHP and ASP.NET for quite some time now, I personally feel that its ultimately a choice based on the nature & architecture of the application.
PHP is quite stable, has an object-oriented paradigm (as of PHP5) and includes numerous modules (for cross-database access, cryptography, graphics, network communication etc.) but it lacks the power of a complete programming framework and sophisticated development tools (IDEs, GUI tools etc). I haven’t heard many talk of unit testing and refactoring in the PHP camp. ASP.NET on the other hand is quite scalable and more apt for enterprise level applications. Having said that the learning curve with ASP.NET might be a little high for a newbie. PHP (much like ASP) is quicker to adapt to for any new developer. I reckon that PHP will continue to evolve as a server-side scripting language while the focus with regards to ASP.NET will be on building high-performance web applications and Web Services (although PHP5 also supports WS/SOAP).
This blog for example runs on PHP and MySQL, even though I develop in .NET almost 90% of the time. I could have opted for an ASP.NET powered blog but I couldn’t find the features I was looking for in a similar ASP.NET product (and hence I choose WordPress). Anyways, more on that later. So basically the winner is whichever technology that solves a problem in the most efficient way, in less time and with the least resources. In that context, no one technology can satisfy all the constraints for all the projects. Its best to evaluate the project requirements and opt for the most suitable option.