Hola concric:
Yo poco se pero veo que incrementas el contador en un else y defines la variable $file por consiguiente cada vez que entras en la funcion la variable $file esta definida y te da VERDADERO por tanto nunca realizara el else y por tanto no imprimira $num ¿no?
Saludos