Tach!
Blödes Type Juggling in PHP... Und wie macht man's am richtigsten?
Wenn es der Anwendungsfall hergibt, definiert man, dass '0' wie Leerstring zu den ungültigen Werten gehört und fertig. Das passt in vielen Situationen.
Ansonsten geht jeder Ausdruck, für den die Wahrheitstabelle die passenden Ergebnisse liefert. Zum Beispiel !empty($_POST['key']) or $_POST['key'] == '0'
Da es keine anderen Typen als Strings regulär im $_POST/$_GET-Array geben kann, muss man noch nicht mal typsicher vergleichen, weil alle anderen Fälle bereits vom empty() eindeutig entschieden werden.
dedlfix.