PHP 4.3

4.5 Existenzprüfung von Variablen

Mit Vergleichsoperatoren haben Sie eine Möglichkeit kennengelernt, um die Werte bestimmter Variablen zu prüfen. In der Praxis stellt sich Ihnen jedoch ebenso häufig die Frage, ob eine Variable überhaupt existiert, bzw. ob eine Variable überhaupt einen Wert besitzt. Denken Sie dazu an unsere Beispiele zur Übertragung von Formulardaten. Wenn Sie den Namen eines Besucher einer Website in einem Formular erfragen, dann steht nicht der genaue Name des Besuchers im Vordergrund einer Überprüfung. Vielmehr steht im Vordergrund, ob eine Variable übertragen wurde und ob die Variable einen Wert besitzt, der auf eine korrekte Eingabe des Namens schließen lässt.

In PHP gibt es unterschiedliche Möglichkeiten, Variablen bzw. Werte auf ihre Existenz zu überprüfen:

Existenzprüfung mit isset()

Die bloße Existenz einer Variablen kann mit der PHP-Funktion isset() festgestellt werden. Sofern PHP die Variable vorfindet, unabhängig davon, welcher Wert der Variablen zugewiesen wurde, gibt isset() den Boolean true zurück bzw. false, wenn keine Variable gefunden werden kann. Beachten Sie, dass bereits die Zuweisung einer 0 oder einer leeren Zeichenkette ausreicht, damit isset() die Variable als vorhanden erkennt.

$obst = "Apfel";

if (isset($obst)) {
  echo "Die Variable existiert.";
} else {
  echo "Die Variable existiert nicht!";
}

Wertprüfung mit empty()

Wenn die bloße Existenz der Variable nicht ausreicht, stellt PHP mit empty() eine Funktion zur Wertprüfung bereit. empty() liefert den Boolean true zurück, wenn die Variable den numerischen Wert gleich 0 oder eine leere Zeichenkette bzw. die zur numerischen Null konvertierende Zeichenkette "0" enthält. In der PHP-Entwickler-Gemeinde wird der Sinn von empty() diskutiert. Gerade der Umstand, dass eine Variable mit dem Wert "0" als leer erkannt wird, ist bei der Entwicklung von Skripten nicht immer hilfreich. Gleiches gilt für Variablen, denen der boolesche Wert false zugewiesen wurde. Hier liefert empty() den (ebenfalls booleschen) Wert true zurück.

$obst = "";

if (isset($obst)) {
  echo "Die Variable existiert ";
} else {
  echo "Die Variable existiert nicht ";
}

if (empty($obst)) {
  echo "aber leider ist die Variable leer!";
} else {
  echo "und hat den Wert $obst!";
}

Kommentare (0)

Ihr Kommentar

Name