PHP will run on a Windows computer. But it does need to be installed and configured to the web server that is running (be it Apache or IIS).
As for learning PHP, knowing another language never hurts.
To learn PHP based on what you know in ASP will depend on the flavor of ASP you've been coding in. If you've been coding with JScript flavored ASP, then PHP will not be very foreign since the sturcture, vocabulary, and processes are pretty similar (if(), switch(), for(), while() will be very familiar). If all you've done is VBScript flavored ASP, then you may initially find PHP a bit backwards. PHP ends up being a mix of Perl and C so if you know a little of these two, you'll pick up PHP very quickly. If not, don't worry. PHP is an easy language to learn.
As for features (ASP vs PHP), this could start a holy war. But to keep things in perspective, I'll rattle off some of the things I've found. This is not a complete or scientific list.
ASP advantages:
- runs under IIS
- ADO built in
- good error handling
- runs quick
- very object friendly
ASP disadvantages:
- runs natively under IIS only (tools available to port script to other servers)
- string and date handling a bit week (this is an opinion)
- Requires SSI to include "libraries" of code (meaning you can't include files based on conditions - you either include the file or you don't with ASP)
PHP advantages:
- Not tied to one web server environment (is also rather portable)
- runs quick
- Great string and date functions
- large collection of plugins freely available (such as GD for image manipulations, for example)
PHP disadvantages
- lacks built in ADO. Although ADO functionality is available as a PHP class.
- error handling not as robust
- although PHP can handle objects, its not its specialty. PHP5 may change that.
- I've heard of developers complaining of version compatibility with v3 and v4 and minor releases within these major ones. I personally haven't had any casualties of an upgrade, but it sounds like others may have.
There's the classic, "well, PHP does this thing better then ASP". When I was working with ASP, I found string and date functions were miserable to work with just because ASP didn't have a rich collection of functions which did a lot of the work for you. Special note here: "for you". ASP does have enough tools to build your own (which is what I tended to do if time permitted). It also allows you to build onto the existing objects it provides (like the date object).
That's been my experience between the two...