PHP (от Personal Home Page, но потом стали расшифровывать как PHP: HyperText Processor) - язык разработки сценариев (скриптов) с простым синтаксисом. Предназначен для написания интерактивных функций, выполняющихся на стороне сервера. Поддерживает только простейшие методологии и техники программирования. Использование в крупных проектах затруднено.
ASP.NET (Active Server Pages) - не язык программирования, но расширение (набор классов) .NET Framework для создания Web-приложений любого уровня сложности. ASP-приложения компилируются в CLR-модули и могут быть написаны на любом языке, поддерживающем .NET (например, на C++, C#, Visual Basic, Java, Delphi).
ASP.NET:
- расширяем;
- интегрируется с ADO.NET;
- поддерживает XML, WSDL, SOAP и другие технологии для построения Web-сервисов;
- позволяет разносить Web-страницы и код (в CodeBehind файлах);
- по сути не зависит от Web-сервера, используя его только для перехвата HTTP запросов (но в настоящее время наилучшая интеграция достигается с IIS);
- позволяет на новом уровне создавать пользовательский интерфйс без использования ActiveX;
- и прочее.
Поэтому всё зависит от целевой функции - для небольшого проекта может оказаться удобней использовать PHP, а для большого - ASP.NET. К тому же PHP - не единственная альтернатива. Например, мне очень симпатичен Python.
А что учить с точки зрения перспективности - трудно сказать. Может, вообще AJAX (Asynchronous JavaScript And XML)?
Главное, что собственно к программированию, как к выражению идей на формальном языке, это отношения не имеет.
P.S. Много знакомых жаловались, что PHP прививает плохой стиль, то есть !начинать! обучение с него, наверное, не стоит. К тому же его изучить действительно легко.