empty

(PHP 4, PHP 5, PHP 7)

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

Beschreibung

empty ( mixed $var ) : bool

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:

  • "" (eine leere Zeichenkette)
  • 0 (0 als Integer)
  • 0.0 (0 als Fließkommazahl)
  • "0" (0 als Zeichenkette)
  • NULL
  • FALSE
  • array() (ein leeres Array)

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