empty
(PHP 4, PHP 5, PHP 7)
empty — Prüft, ob eine Variable einen Wert enthält
Beschreibung
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:
empty() überprüft 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 Dinge zählen als nicht mit einem Wert belegt:
- "" (eine leere Zeichenkette)
- 0 (0 als Integer)
- 0.0 (0 als Fließkommazahl)
- "0" (0 als Zeichenkette)
NULLFALSE- array() (ein leeres Array)
- var $var; (deklarierte, aber nicht belegte Variable)
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 |
Beispiele
Beispiel #1 Ein einfacher Vergleich von empty() / isset()
<?php
$var = 0;
// true, weil $var keinen Wert enthält
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, enthält aber keinen Wert';
}
?>
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 Objekteigenschaten wird die überladene Methode __isset aufgerufen, falls deklariert.
Siehe auch
- isset() - Prüft, ob eine Variable existiert und ob sie nicht NULL ist
- __isset
- unset() - Löschen einer angegebenen Variablen
- array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert
- count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
- strlen() - Ermitteln der String-Länge
- die Tabelle zum Typenvergleich