PHP isset – Prüfen, ob eine Variable existiert

Die PHP-Funktion isset wird dazu verwendet um zu prüfen, ob eine Variable bereits definiert wurde. Als Parameter erwartet die Funktion eine Variable oder eine Variablenliste, deren Existenz geprüft werden soll. Sollen mehrere Variablen geprüft werden, so werden die Variablen durch Kommata voneinander getrennt. Der Rückgabewert ist immer dann TRUE, wenn die angegebene Variable oder die angegebenen Variablen bereits durch eine vorherige Definition bekannt gemacht wurden – werden mehrere Variablen angegeben, so müssen alle existieren, damit TRUE zurückgeliefert wird. Ist die Variable bzw. sind die Variablen bislang nicht definiert, so liefert die Funktion den Return-Wert FALSE. Ebenso verhält es sich, wenn eine Variable den Wert NULL enthält.

PHP If Isset Beispiel 1: Isset in PHP

Im ersten Beispiel zur Funktion isset wird zunächst eine Variable i mit dem Wert 0 initialisert. Darauf folgend wird nun das Ergebnis des Funktionsaufrufs der isset-Funktion ausgegeben. Die Funktion var_export wandelt dabei den von isset gelieferten Wert in ein String um. Danach wird die Variable mit unset wieder gelöscht und ein weiterer Aufruf von isset mit dieser Variable getätigt.

Nun wird die Variable k mit der Konstante NULL initialisert. Mit der If-Abfrage wird wieder auf Existenz der Variable k geprüft. Dieser Aufruf von isset liefert erwartungsgemäß FALSE, was dazu führt, dass die entsprechende Meldung mit Echo ausgegeben wird. Im letzten Aufruf des Scripts werden die Variablen i und j mit isset geprüft. Hier wird die Kurzschreibweise der If-Anweisung verwendet. Liefert die Funktion isset TRUE, so wird das erste String, ansonsten das zweite String ausgegeben.

<?php
    // Variable i initialisieren
    $i = 0;
    // Ergebnis des Aufrufs isset ausgeben
    echo 'i: ' . var_export (isset ($i), true) . '<br>';
    // Zum Vergleich Variablendefinition durch Zerstörung
    // der Variablen i...
    unset ($i);
    // und darauf folgende Ausgabe des Return-Wertes vom
    // Aufruf der isset-Funktion.
    echo 'i: ' . var_export (isset ($i), true) . '<br>';

    // Variable k mit dem Wert NULL (der Konstante) initialisieren
    $k = NULL;
    // Welches Ergebnis liefert isset nun?
    if (isset ($k))
        // isset hat TRUE geliefert
        echo 'k existiert<br>';
    else
        // isset war FALSE
        echo 'k existiert nicht oder ist NULL<br>';

    // Abfrage von isset für mehrere Variablen
    echo isset ($i, $j) ? 'i und j existieren!' : 'Mindestens eine der Variablen existiert nicht!';
?>

i: true
i: false
k existiert nicht oder ist NULL
Mindestens eine der Variablen existiert nicht!

PHP Isset Function Beispiel 2: PHP Array Isset

Das nächste Beispiel zeigt, wie die isset-Function mit einem Array verwendet werden kann. Die Variable a wird mit drei Werten gefüllt und dann wird das Ergebnis des isset-Aufrufs mit der Variablen a ausgegeben. Da die Variable definiert ist, wird an dieser Stelle 1 – für TRUE; wird FALSE geliefert, so erhält man ein Leerstring – ausgegeben. In der nun folgenden For-Schleife werden die im Array vorhandenen Werte einzeln mit isset abgeprüft und die Rückgabewerte der entsprechenden Indexpositionen (von 0 bis length) ausgegeben.

Der letzte Block im Beispiel definiert zuerst ein assoziatives Array und füllt es mit entsprechenden Schlüssel-Wertepaaren. Hier wird nun die Foreach-Schleife genutzt, um durch das Array zu iterieren und auch hier werden die Rückgabewerte von isset ausgegeben.

<?php
    // Array mit drei Werten füllen
    $a = array (4, NULL, 'Wert1');
    // Existiert eine Variable a, so wird bei der Ausgabe des
    // Rückgabewertes vom isset-Aufruf 1 für TRUE ausgegeben.
    echo 'Array a: ' . isset ($a) . '<br>';
    // Jedes einzelne Element des Arrays durchgehen...
    for ($i = 0; $i < sizeof ($a); $i++)
        // und für jeden Index prüfen, welcher Wert von
        // isset geliefert wird.
        echo 'a[' . $i . ']: ' . isset ($a[$i]) . ' ';
    echo '<br>';

    // Assoziatives Array mit Schlüssel-Wertepaaren erzeugen
    $a = array ('ID' => '11da45', 'Bezeichnung' => 'Hundeleine, 2m', 'Farbe' => NULL, 'Preis' => 12.98);
    // Jedes Schlüssel-Wertepaar einzeln durchgehen...
    foreach ($a as $eigenschaft => $wert)
        // uns den Return-Wert von isset für das jeweilige
        // Paar ausgeben.
        echo 'a[' . $eigenschaft . ']: ' . isset ($a[$eigenschaft]) . ' ';
    echo '<br>';
?>

Array a: 1
a[0]: 1 a[1]: a[2]: 1
a[ID]: 1 a[Bezeichnung]: 1 a[Farbe]: a[Preis]: 1

PHP Isset Empty Beispiel 3: Isset in _GET (Parameter des PHP-Scripts)

Als letztes Beispiel sollen die GET-Parameter eines PHP-Scripts geprüft werden. An dieser Stelle birgt die Verwendung der isset-Funktion das Problem, dass die _GET-Variable, in der die dem Script in der URL übergebenen Parameter gespeichert werden, unter PHP zu den vordefinierten Variablen gehört. Deutlich wird dies durch die If-Abfrage zu Angang. Diese Abfrage liefert immer TRUE, da _GET – wenn auch leer – immer definiert ist (die Ausgabe unter der If-Anweisung erfolgt also immer). Soll auf die Existenz von Parametern geprüft werden, so sollte dies unter Verwendung von empty erfolgen. In der zweiten Abfrage im unteren Script-Abschnitt geschieht genau dies – hier wird gefragt, ob das Array _GET nicht leer ist. Wurden Parameter angegeben – bedeutet, dass das in der _GET-Variablen gespeicherte Array Elemente enthält –, so wird die erste Meldung ausgegeben. Empty prüft also, ob das Array Elemente enthält und liefert TRUE, wenn dem so ist – ansonsten FALSE.

<?php
    // Abfrage des _GET-Arrays mit den Parametern über isset.
    // Da _GET eine vordefinierte Variable ist, existiert sie
    // immer und deshalb liefert die folgende Abfrage IMMER
    // ein positives Ergebnis. Dies ist auch dann der Fall,
    // wenn keine Parameter per GET-Request angegeben wurden.
    if (isset ($_GET))
        echo 'Parameter-Array (GET) existiert!<br>';

    // Prüfen, ob dem PHP-Script in der URL Parameter angegeben wurden.
    // Aufgerufen wurde die URL des Scripts dann in der Form:
    // http://www.evocomp.de/redirect.php?ziel=http://www.evocomp.de
    // In diesem Fall ist im assoziativen Array-Element $_GET['ziel']
    // der Wert http://www.evocomp.de gespeichert.
    if (!empty ($_GET))
        echo 'Es wurden Parameter per GET in der URL angegeben!';
    else
        echo 'Dem Script wurden keine Parameter per GET uebergeben!';
?>

Parameter-Array (GET) existiert!
Dem Script wurden keine Parameter per GET uebergeben!

Letzte Posts aus unserem Forum

Wer kennt .....

Hallo erstmal wer kennt von euch einen WEbprogrammieren,desginer der mir eine Seite erstellen kann ,Communityportal sowas in der art wie ... » mehr

von NCWebmaster am Mittwoch, 7. Oktober 2009 00:32 in PHP - bisher 2 Antworten
Letzter Beitrag: Montag, 17. Dezember 2012 16:57 von maharadja

...einen guten Onlineshop für Taufringe? Ich habe bisher Taufringe Direkt gefunden und wollte mal nachhaken, ob der Shop für Taufringe wirklich so ... » mehr

Webentwickler Konferenz in Hamburg

Hallo Zusammen, Am 20./21. Mai findet in Hamburg die erste Developer Conference 2011 statt. Wie der Name bereits verrät, handelt die Konferenz rund ... » mehr

von devcon-hamburg am Dienstag, 12. April 2011 16:50 in PHP - noch nicht beantwortet

bedingte Weiterleitung in Kontaktformularen

Hallo zusammen, ich habe ein kleines Problem: Ich brauche bei der Entwicklung eines Kontaktformulares für eine Website eine bedingte Weiterleitung ... » mehr

von scatha am Donnerstag, 10. März 2011 01:12 in PHP - noch nicht beantwortet

Gesucht: Auslesen einer externen Website

Mein vorhaben ist recht simpel aber ich bin php noob (hoffe das entschuldigt es nen bissl xD) und hab kp wie ichs anfangen soll. Und zwar möchte ich ... » mehr

von HeathenMan am Dienstag, 1. Februar 2011 22:57 in PHP - bisher 1 Antwort
Letzter Beitrag: Donnerstag, 3. Februar 2011 14:43 von alm

Hallo, am einfachsten und kompaktesten kann man das mit einem regulären Ausdruck machen. Einfach mal nach der Funktion preg_match_all suchen und den ... » mehr

Zeilenumbruch in der Bildergalerie-Beschriftung

Hallo, die Bildergalerie mit php und js ist super, jedoch möchte ich gern zu meinen Bildern verschiedene Bemerkungen machen und zwar untereinander, ... » mehr

von Sylma am Mittwoch, 26. Januar 2011 01:13 in PHP - bisher 1 Antwort
Letzter Beitrag: Freitag, 28. Januar 2011 10:16 von alm

Hallo, ich nehme an, dass \n im Beschreibungstext nicht funktioniert aber versuchen kann man es. Ansonsten: Schon mal mit einer UTF-Sequenz ... » mehr

¬ Tutorials



¬ Insolvenzrecht