isset

(PHP 4, PHP 5, PHP 7)

issetPrüft, ob eine Variable existiert und ob sie nicht NULL ist

Beschreibung

isset ( mixed $var [, mixed $... ] ) : bool

Prüft, ob eine Variable existiert und nicht NULL ist.

Wenn eine Variable mittels unset() zurückgesetzt wird, gilt sie nicht länger als existent. isset() wird FALSE zurückgeben, wenn eine überprüfte Variable auf NULL gesetzt ist. Beachten Sie außerdem, dass ein Null-Zeichen ("\0") nicht äquivalent ist zur PHP-Konstante NULL.

Wenn mehrere Parameter übergeben werden, gibt isset() nur dann TRUE zurück, wenn alle Parameter belegt sind. Die Auswertung geht von links nach rechts und wird abgebrochen, sobald eine Variable nicht belegt ist.

Parameter-Liste

var

Die zu überprüfende Variable.

var

Eine weitere Variable ...

Rückgabewerte

Gibt TRUE zurück, wenn var existiert und einen von NULL verschiedenen Wert hat, andernfalls FALSE.

Changelog

Version Beschreibung
5.4.0

Die Prüfung nicht numerischer Zeichenketten-Offsets gibt nun FALSE zurück.

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 5.4 ändert das Verhalten von isset(), wenn Zeichenketten-Offsets übergeben werden.

<?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 mit PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Anmerkungen

Warnung

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 verwenden.

Hinweis:

Bei Aufruf von isset() auf nicht-öffentliche Objekteigenschaten wird die überladene Methode __isset aufgerufen, falls deklariert.

Siehe auch