isset
(PHP 4, PHP 5, PHP 7, PHP 8)
isset — Prüft, ob eine Variable deklariert ist und sich von null
unterscheidet
Beschreibung
Prüft, ob eine Variable als belegt gilt, d.h., ob eine Variable deklariert
ist und sich von null
unterscheidet.
Wenn eine Variable mittels unset() zurückgesetzt wurde, gilt sie nicht länger als belegt.
isset() gibt false
zurück, wenn damit eine Variable
geprüft wird, der null
zugewiesen wurde. Zu beachten ist auch, dass ein
Nullzeichen ("\0"
) nicht der PHP-Konstante null
entspricht.
Wenn mehrere Parameter übergeben werden, gibt isset()
nur dann true
zurück, wenn alle Parameter als belegt gelten. Die
Auswertung geht von links nach rechts und wird abgebrochen, sobald eine
Variable nicht belegt ist.
Parameter-Liste
-
var
-
Die zu überprüfende Variable.
-
vars
-
Eine weitere Variable ...
Rückgabewerte
Gibt true
zurück, wenn var
existiert und einen von
null
verschiedenen Wert hat, andernfalls false
.
Beispiele
Beispiel #1 isset()-Beispiele
<?php
$var = '';
// Dieser Ausdruck wird zu TRUE ausgewertet, also wird der Text angezeigt
if (isset($var)) {
echo "Die Variable ist gesetzt, also wird etwas ausgegeben.";
}
// In den nächsten Beispielen wird var_dump() benutzt, um den Rückgabewert von
// isset() auszugeben.
$a = "test";
$b = "anothertest";
var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE
$foo = NULL;
var_dump(isset($foo)); // FALSE
?>
Die funktioniert ebenfalls für Arrayelemente:
<?php
$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));
var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['hello'])); // FALSE
// Der Schlüssel 'hello' hat den Wert NULL,
// daher wird sein Inhalt nicht betrachtet
// Wenn man herausfinden willen, ob ein
// Schlüssel mit dem Wert NULL vorhanden
// ist, verwendet man:
var_dump(array_key_exists('hello', $a)); // TRUE
// Tiefer verschachtelte Array-Strukturen prüfen:
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE
?>
Beispiel #2 isset() und Zeichenketten-Offsets
<?php
$expected_array_got_string = 'einstring';
var_dump(isset($expected_array_got_string['ein_schluessel']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)
Anmerkungen
isset() funktioniert nur mit Variablen, da der Aufruf mit etwas anderem einen Parse-Error verursacht. Um zu überprüfen, ob Konstanten gesetzt sind, sollte die Funktion defined() benutzt werden.
Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen oder benannten Parametern verwenden.
Hinweis:
Bei Aufruf von isset() auf nicht-öffentliche Objekteigenschaten wird die überladene Methode __isset aufgerufen, falls deklariert.
Siehe auch
- empty() - Prüft, ob eine Variable leer ist
- __isset
- unset() - Löschen einer angegebenen Variablen
- defined() - Prüft, ob eine benannte Konstante existiert
- die Tabelle zum Typenvergleich
- array_key_exists() - Prüft, ob ein gegebener Schlüssel in einem Array existiert
- is_null() - Prüft, ob eine Variable null enthält
- Fehler-Kontroll-Operator @