fortunately for PHP, this article does itself in with each negative example it tries to give for PHP.
-- PHP is open source. this should end the argument right here. There are far more open source utilities available for PHP then there are for .Net and they are generally cheaper

Take for example database abstraction tools: you can choose between ADODB, Pear DB, Metabase, just to name a few. Or how about a free shopping cart system? OSCommerce.
-- PHP not fully OO. Funny that microsoft's most stunning reason for this is the lack of private variables. While this is a drawback for PHP it is easily accomplished though the development implementation itself. Since scripts aren't compiled in PHP and code source is available, this is almost irrelevant, since you can see how the object works anyway. The nice thing about PHP compared to .Net is you aren't forced to work objectively if you don't want to.
-- PHP is not strongly typed. it is if you want it to be, like using === operator. And the option explicit equivalent is error_reporting(E_ALL) in PHP. I guess the author of this article wasn't aware of that.
-- PHP objects are copied rather then referenced. This is a problem. But any developer who is aware of the problem knows to pass the object by reference to a function. like function(&$Object) { }. This will be fixed in PHP 5 anyway.
-- the error handling argument is funny because the author says you *can* handle errors by declaring an error_handler function but then he says it is not as easy as using try ... catch? I'm confused. If you declare one function to handle all your errors it's actually a little easier then declaring a try every time. If you want to catch program logic errors you can use trigger_error() as well.