Funktionen zur Behandlung von Variablen
PHP Manual

empty

(PHP 4, PHP 5, PHP 7)

emptyPrüft, ob eine Variable einen Wert enthält

Beschreibung

bool empty ( mixed $var )

Prüft, ob eine Variable leer ist. Eine Variable ist leer, wenn sie nicht existiert oder wenn ihr Wert gleich FALSE ist. empty() erzeugt keine Warnung, wenn die Variable nicht existiert.

Parameter-Liste

var

Die zu prüfende Variable.

Hinweis:

Vor PHP 5.5 überprüft empty() nur Variablen, alles andere führt zu einem Parse-Error. Anders gesagt wird folgendes nicht funktionieren: empty(trim($name)). Statt dessen sollte trim($name) == false verwendet werden.

Es wird keine Warnung erzeugt, wenn die Variable nicht existiert. Das bedeutet, dass empty() im Wesentlichen das kurzgefasste Äquivalent zu !isset($var) || $var == false ist.

Rückgabewerte

Gibt FALSE zurück, wenn var existiert und einen nicht-leeren, von 0 verschiedenen Wert hat. Andernfalls wird TRUE zurück gegeben.

Folgende Werte werden als leer angesehen:

Changelog

Version Beschreibung
5.5.0

empty() unterstützt nun Ausdrücke anstatt nur Variablen.

5.4.0

Die Prüfung nicht numerischer Offsets von Zeichenketten gibt TRUE zurück.

Beispiele

Beispiel #1 Ein einfacher Vergleich von empty() / isset()

<?php
$var 
0;

// true, weil $var leer ist
if (empty($var)) {
    echo 
'$var ist 0, nicht mit einem Wert belegt, oder nicht gesetzt';
}

// true, weil $var gesetzt wurde
if (isset($var)) {
    echo 
'$var ist gesetzt, obwohl es leer ist';
}
?>

Beispiel #2 empty() und Zeichenketten-Offsets

PHP 5.4 ändert das Verhalten von empty(), wenn Zeichenketten-Offsets übergeben werden.

<?php
$expected_array_got_string 
'einstring';
var_dump(empty($expected_array_got_string['ein_schluessel']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

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

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis:

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

Siehe auch


Funktionen zur Behandlung von Variablen
PHP Manual