The choice of a language is essentially both subjective and related to the context. When you read an article of a person who says that PHP is bad, it's an opinion in a first place. This means that some people will find it very valuable and very true, because it matches their opinions, whereas others, who have opposite opinion and experience, will think that most things said by the author are false.
Of course, it's not only about opinions. Some people are just not knowing what they are talking about. When a person tells that PHP websites are faster than websites written in compiled languages, because there is no time wasted for compiling the code, well, it's not an opinion, but just a plain ignorance of the subject. In the same way, if I'll write an article about C# vs. Java, while I've written no more than fifteen lines of Java in my life, the article will not be very valuable.
When you make a choice, you:
Evaluate the context. You don't write embedded software in PHP, and you don't write business applications in Ada. Some languages are better for a particular use, and you easy know that just by watching what other people are using mostly.
When there is no preference, in a given context, between two languages (for example C# vs. Java for a business application), the choice will be obviously subjective, since the languages are so close, that no one has a huge strong point compared to others. In this case, the choice is based mostly on experience and personal preference of the developers in a team. If nine of ten developers of your team love open source and hate Microsoft, don't force them to use ASP.NET.
Make your own opinion
Since "<language 1> vs. <language 2>" articles are at best not very helpful, at at worst, totally misleading, make your own opinion. If you believe that you will have to choose one day between C# and Java, learn both, and by learning, I mean spend two years writing real apps in each language. Once done, you'll have enough arguments yourself to be able to pick one language or another for a particular project, according to your preferences and the context.
Don't stop after one week of learning. If you've spent last seven years developing C# applications and start to learn Java, chances are that the first days or weeks, your opinion will be strongly biased, and you'll scratch your head, asking yourself why you can't do in Java something which is so easy in C#. After a period of time, this biased opinion will decrease and maybe disappear, enabling you to see that C# has something that Java lacks, but C# lacks some Java features too.
What about cost efficiency?
This is a good point to use when selecting one language over another. Sadly, it's too complicated to use, for two reasons:
There are too many factors.
PHP developers are cheaper than ASP.NET developers, because PHP is easy to start with, and lots of people can write PHP and call themselves developers. But an inexperienced developer will write spaghetti code, and the refactoring will be very expensive. How to asset this?
Windows PCs are less expensive compared to Apple devices. If you're building a new company with hundreds of desktops, you may pick Windows vs. Apple. Now what about the cost of user support, downtime due to the problems, etc.?
Visual Studio (non-Express) licenses are very expensive. What about using Mono and some freeware IDEs? But most C# developers are familiar with Visual Studio: how much it will cost for them to become equally productive with a freeware IDE like they were with Visual Studio 2010 Ultimate?
The cost is not very different.
For example recently, I was asked by a customer to see if her particular solution will be cheaper to host in Windows Azure or an ordinary, non-cloud hosting provider. The cost was exactly the same.
The same comes for open source vs. Microsoft stack. If you use hosting providers, you'll find that the price is very similar for LAMP and for Microsoft (Windows, IIS, ASP.NET, Microsoft SQL Server) stack. If you're building your own datacenter, the cost will often be similar too, even when we are talking about the Microsoft SQL Server licenses sold at $30,000.
Imagine if one solution would be obviously cheaper than another one on a market. Why would anyone use it? How it would become popular on a competitive market?