Many will argue with me, but C++ is on its way out. It's primary usage these days is maintaining legacy Win32 code, or coding GUI's in Unix.
I would recommend learning c#. It's an easy, OO language to learn, is well documented and supported, and windows is moving to managed code for its API, meaning all the shit ya hafta use C++ (or P/Invoke) for can be done in any of the .net languages.
PHP is quick and dirty, but it's slow. Good learning language, bad language to use in practice with large applications.
If you want the best learning language though, I recommend Java. It runs on everything, has great server-side support...a well rounded language.