Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung und Unterschiede von empty,isset,is_null in PHP

Verwendung und Unterschiede von empty,isset,is_null in PHP

高洛峰
高洛峰Original
2017-02-21 15:25:221345Durchsuche

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 Lücken 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

zurückgegeben

2.isset()

isset – Überprüfen Sie, ob die Variable gesetzt ist

Beschreibung
bool isset ( gemischt var [, gemischt 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) Unterschied zwischen Null

$a = null;
is_null($a);

Außerdem 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. is_null( ):

bool is_null (mixed $var) (Funktionsdefinition im offiziellen Dokument von php.net)
Wenn die Parameter die folgenden drei Bedingungen erfüllen , is_null() gibt TRUE zurück, andere Situationen sind FALSE
1. Es wurde kein Wert zugewiesen
3. Es ist undefiniert, was unset() entspricht. Nach unset() bedeutet das, dass es keinen Wert gibt. Definition? Artikel über die Verwendung und Unterschiede von empty, isset, is_null in PHP. Bitte beachten Sie die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn