Ich habe kürzlich den Quellcode des Projekts gelesen und festgestellt, dass die Funktionen empty, isset und is_null (Sprachfunktionen) wahllos im Quellcode verwendet werden. An einigen Stellen gibt es offensichtlich Fallstricke. Wenn diese Dinge nicht richtig verstanden werden, können Fallstricke für die spätere Entwicklung entstehen.
1.leere Verwendung
bool leer (gemischte Variable)
Wenn var ein nicht leerer oder ungleich Null-Wert ist, empty() gibt FALSE zurück. Mit anderen Worten: „“, 0, „0“, NULL, FALSE, array(), var $var; und Objekte ohne Attribute werden als leer betrachtet. Wenn var leer ist, wird TRUE
2.isset()
isset – Überprüfen Sie, ob die Variable gesetzt ist
Beschreibung
bool isset ( Mixed var [, Mixed var [, ...]])
Gibt TRUE zurück, wenn var existiert, andernfalls FALSE.
Wenn eine Variable mit unset() freigegeben wurde, ist sie nicht mehr isset(). Wenn Sie isset() verwenden, um eine Variable zu testen, die auf NULL gesetzt ist, wird FALSE zurückgegeben. Beachten Sie außerdem, dass ein NULL-Byte („0“) nicht der NULL-Konstante von PHP entspricht.
Hinweis: Wenn die Variable nicht existiert, melden weder isset() noch empty() einen Fehler, is_numeric() meldet einen Fehler
So unterscheiden Sie [0 ,'' im folgenden Array ,null] drei Elemente? (1) Differenz 0:
$a = 0; isset($a) && is_numeric($a) === true
(2) Differenz ''
$a = ''; empty($a) && $a=== ''
(3) Differenz null
$a = null; is_null($a);
Darüber hinaus müssen Sie beim Absenden eines Formulars häufig überprüfen, ob eine Variable vorhanden ist, wenn $_REQUEST['status' ] = 0 ; Verwenden Sie empty($_REQUEST['status']), um true zurückzugeben, aber verwenden Sie isset($_REQUEST['status']), um zu beurteilen, dass es nicht leer ist
3 ():
bool is_null (mixed $var) (Funktionsdefinition im offiziellen Dokument von php.net)
Wenn die Parameter die folgenden drei Bedingungen erfüllen, gibt is_null() TRUE zurück , andernfalls ist es FALSE
Es wird ein Wert von NULL zugewiesen
3 Es ist undefiniert, was unset() entspricht. ) eine Variable, ist sie nicht undefiniert?
Sehen wir uns einige Beispiele an:
$myvar = NULL; var_dump(is_null($myvar)); // TRUE $myvar1; var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable $num = 520; unset($num); var_dump(is_null($num)); //TRUE Notice: Undefined variable var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable $myvar = 0; is_null($myvar); // FALSE $myvar = FALSE; is_null($myvar); // FALSE $myvar = ''; is_null($myvar); // FALSE
PHP isset() und der Unterschied zwischen empty()
Detaillierte Erklärung des Unterschieds zwischen isset und empty in PHP
PHP-Leistungsoptimierung: isset( ) ist schneller als strlen()
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung und Unterschiede von empty,isset,is_null in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!