если вы запустите этот код:
if ( 0=='undefined') echo 'true'; else echo 'false';
вы получаете «true», что означает, что int 0 равно строке «undefined».
Почему это? что мне здесь не хватает?