empty sia con il valore 0 sia con una stringa "0" restituisce true, pertanto il codice nell'if non viene eseguito.

Cmq non ho ben capito la logica della tua funzione, cosa dovrebbe fare?