Well,
The way I see it is you dont have to learn each and every bit of language. But try learning very basic features which will be required in other languages too. For example, OOPS concepts are required in all the languages be it Java, PHP, or any other language. Memory allocation concepts are quite similar in many programming languages. These kind of topics you should never miss out on. 
Each and every language have grammar and rules, same applies for programming languages; Dennis Ritchie himself accepted that fact. So one should learn the grammar of that language. 
But the way I see it is that you got to learn the non common factors between two programming languages. They will let you identify what which language stands for what.
C++ is all basic OOP, so once you learn the OOP concepts, you learn the grammar which you will see in PHP and Java too. 
My learning flow was : 
Visual Basic 5 (partial) -> HTML 2.0 (partial) -> C (partial) -> CPP (partial) -> Java (partial) 
and then I learned C Complete again followed by C++ followed by JAVA (complete this time) then I moved to android as I was familiar with Java and XML (partial) and learned in mean time. First attempt taught me less but in second attempt be sure to learn everything which will help you next time.