Both languages serve an extremely similar purpose: they contain procedural code which is executed by the web-server and whose output is sent back to your browser as "the web page." You cannot see the code that is executed; only its result.
The ASP language is (of course...) built on Visual Basic; runs only on Microsoft Windows servers; and is heavily dependent upon OLE Automation objects found only in the Windows world.
And of course, ASP is being deemed "obsolete" now by its vendor, who wants you to have (and pay for) new worlds to conquer.
PHP comes from the open-source world. It's loosely based on C, but (of course...) it was originally invented by someone who simply had a problem to solve, wasn't in it for the money, and didn't anticipate just how big his solution would become.
PHP will also far-outlive ASP, because it will never be deemed "obsolete" by its vendor.
