php: Ist !empty() und isset() das gleiche?

2 Antworten

Mit isset() prüfen Sie, ob eine Variable gesetzt ist. Das ist besonders praktisch bei der Arbeit mit Formularen.

$z = 0;
if (isset($z)) {
echo "Variable ist gesetzt";
}

In diesem Fall wird die Bedingung zu true ausgewertet und Variable ist gesetzt ausgegeben.




Die Funktion empty() ist ähnlich wie isset(), aber macht noch mehr: Sie liefert wahr zurück, wenn ein String leer ist. Aber ebenso liefert empty() wahr, wenn eine nicht gesetzte Variable überprüft wird oder wenn eine Variable den Wert 0 hat. Im Allgemeinen gibt empty() wahr zurück, wenn der Wert false ergibt. 
$z = 0;
$falsch = false;
if (empty($gibtsnicht)) {
echo " das ist zu wenig - ";
} if (
empty($z)) {
echo " von nichts kommt nichts - ";
} if (
empty($falsch)) {
echo " wieder nix ";
}

PHP 5.6 und MySQL 5.7: Ihr praktischer Einstieg in die Programmierung dynamischer Websites von Florence Maurice


MonkeyKing  17.05.2016, 14:55

Man könnte auch sagen, isset() ist ein Skalpell und empty() ist ein Knüppel.

1

Nein, die liefern durchaus unterschiedliche Ergebnisse. empty() prüft ob eine Variable leer ist und unterdrückt dabei Fehlermeldungen, falls die Variable gar nicht gesetzt ist. Als leer gelten leere Strings, die Zahl 0, der boolsche Wert FALSE, ein leeres Array. isset() hingegen prüft, ob eine Variable überhaupt gesetzt ist.

Beispiel

$a = [];
$b = ['x' => '5'];
$c = '';
!empty($a) FALSE
isset($a) TRUE
!empty($a['x']) FALSE
isset($a['x']) FALSE
!empty($b['x']) TRUE
isset($b['x']) TRUE
!empty($c) FALSE
isset($c) TRUE;

Woher ich das weiß:Berufserfahrung – 20 Jahre Berufserfahrung