dedlfix: Benötigt man empty() & array auf leer prüfen ?

Beitrag lesen

$xy = "0";

if($xy){echo 'Ja, xy ist vorhanden';}
else{echo 'Nein, xy ist NICHT vorhanden';}

Das ist falsch. Man prüft das Vorhandensein von Variablen mit isset(). Mit if($xy) testst du, ob $xy etwas ergibt, das als true angenommen werden kann. '', 0, '0' zählt, teilweise wegen automatischer Typconvertierung, alles als false.

if(!empty($xy)){echo 'Ja, xy ist vorhanden';}
else{echo 'Nein, xy ist NICHT vorhanden';}

Auch nicht richtig: empty() testet auf "ist leer", nicht auf "nicht vorhanden". '', 0, '0' zählt, teilweise wegen automatischer Typconvertierung, alles als leer.

Da empty nicht bei Arrays klappt, bzw. auch ein komplett
leeres Array als "Vorhanden" gilt...

bsp.  $q = array('','','');

Das ist ein kein leeres Array sondern eins mit 3 Elementen.