Es hängt davon ab, wonach Sie suchen. Wenn Sie nur sehen emptymöchten, ob es leer ist, verwenden Sie einfach, um zu prüfen, ob es ebenfalls festgelegt ist, und ob Sie wissen möchten, ob etwas festgelegt ist oder nicht isset.
Empty prüft, ob die Variable gesetzt ist und ob sie auf null, "", 0 usw.
Isset prüft nur, ob es gesetzt ist, es könnte alles sein, was nicht null ist
Mit emptywerden folgende Dinge als leer betrachtet:
- "" (eine leere Zeichenfolge)
- 0 (0 als Ganzzahl)
- 0,0 (0 als Schwimmer)
- "0" (0 als Zeichenfolge)
- NULL
- FALSCH
- array () (ein leeres Array)
- var $ var; (eine deklarierte Variable, jedoch ohne Wert in einer Klasse)
Von http://php.net/manual/en/function.empty.php
Wie in den Kommentaren erwähnt, ist das Fehlen einer Warnung auch bei empty () wichtig
PHP-Handbuch sagt
empty () ist das Gegenteil von (boolean) var, außer dass keine Warnung generiert wird, wenn die Variable nicht gesetzt ist .
In Bezug auf isset
PHP-Handbuch sagt
isset () gibt FALSE zurück, wenn eine Variable getestet wird, die auf NULL gesetzt wurde
Ihr Code wäre in Ordnung als:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Beispielsweise:
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}