I'm a PHP Programmer and I want to master it before learning new language. How can would I know if my skills is enough?
Usually, the two highest forms of understanding are:
you can explain the language to a inquisitive newbie, so that he understands well, and you can answer all of his questions with the underlying principles
(a lot of understanding is usually only intuitively. In PHP, the type system is often not well-understood)
you can actually use the language to fullfill customer requests, with spending only little time with the 'accidental complexity' of the language, and much of the time with the inherent complexity of the problem
if this is the case, you mastered the language. That said: imho, you should learn other languages, even if you have not mastered PHP yet. Seeing things from a different perspective when learning the other language will (imho) improve your understanding of PHP as well.
Do I really need to learn c/c++ or java?
Imho, not neccesserily these, but you definitively need to learn some other languages besides the ones you know
(which, i guess, are at least php, sql and some markup.), to see other concepts. Python and Ruby should be easy transitions, that can lead to more object oriented or functional languages.
Also, you should keep in mind, that a lot of skills you need as a programmer are not, in a strict sense,
'coding related'. Architecture, GUI-Design, Documentation etc are skills that are neccessary for beeing a good programmer, and are not bound to specific languages.