Frage von HtmlDev, 65

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

Antwort
von MonkeyKing, 35

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;

Antwort
von Borgler94, 47

nein...

diese Seite beantwortet dass weit besser als ich es könnte
https://stefankonarski.de/content/php-5-unterschied-zwischen-den-funktionen-empt...

Antwort
von Yogi851, 23

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

Kommentar von MonkeyKing ,

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

Keine passende Antwort gefunden?

Fragen Sie die Community