Hallo Kiska,
Die Bedingung sollte eigentlich so aussehen ($a==0 && $a==""), dann klappt's auch mit dem Nachbar :).
Und wie willst du diesen Zustand erreichen?
Die $a soll _gleichzeitig_ den Wert 0 haben _und_ leer sein?
Klar, greift dann dein else-Zweig sowie was drinnen steht - aber so richtig "sauber" kommt mir das nicht vor, spätestens bei komplexeren Sachen fällst du mit der Methode bestimmt auf die Nase..
So erschlägst du alle Eventualitäten:
<?
$a = "";
if (($a=="0") || ($a=="") || (!$a))
echo "nicht definiert";
else
echo "definiert";
?>
Gruß
der_bernd