empty controlli se è valorizzata (ci sono una serie di valori che restituiscono true) mentre isset restituisce true solo se esiste la variabile, anche se contiene un valore considerato vuoto da empty

ciao