3. Der Unterschied zwischen is_null(), empty(), isset()
//Besonderer Hinweis: Diese drei Funktionen eignen sich nur für die Variablenbeurteilung, verwenden Sie keine Literale direkt
* 1. Wenn is_null() true zurückgibt?
* 1. Die Variable wurde deklariert, aber nicht initialisiert, und der Standardwert ist null
* 2. Die Variable ist einen Wert von null zugewiesen
* 3. Nachdem unset() zerstört wurde, hat die Variable einen Nullwert
* Zusammenfassung: Die Variable existiert nicht/hat keinen zugewiesenen Wert/der Wert ist null, dann wird true zurückgegeben
$val1; //已声明,但未赋值 $val2 = null; //直接用null初始化变量 $val3 = 'php'; unset($val3); //彻底销毁变量
// Hinweis: Die Verwendung des ternären Operators zur Ausgabe von true oder false dient nur der Anschauung und kann vollständig weggelassen werden
@var_dump(is_null($val1) ? true : false); //true var_dump(is_null($val2) ? true : false); //true @var_dump(is_null($val3) ? true : false); //true
// var_dump(is_null('' )); //Der leere String gibt false zurück
* 2. Wann gibt empty() true zurück
* 1. Leerer String, leeres Array
* 2. null
* 3.0 / '0' / false
* Zusammenfassung:
* 1. Wenn eine Variable nicht existiert, ist sie entweder leer oder null. Sie können sie verwenden is_null() / empty() zur Bestimmung von
* 2. Wenn eine Variable vorhanden ist, ihr Wert jedoch keinen Einfluss auf das laufende Ergebnis hat, wird sie als leer betrachtet
* 3. null muss leer sein, aber leer ist nicht unbedingt null, da es ein Nullwert oder 0 oder falsch sein kann
*/
$str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 'peter zhu'; echo '<hr>'; var_dump(empty($str1) ? true : false);//空字符串 var_dump(empty($str2) ? true : false);//空数组 var_dump(empty($str3) ? true : false);//字符型数字0 var_dump(empty($str4) ? true : false);//数字0 var_dump(empty($str5) ? true : false);//null值 var_dump(empty($str6) ? true : false);//布尔false var_dump(empty($str7) ? true : false);//有值且不为空,返回false
* Denken: Um festzustellen, ob der Benutzer Inhalte in den Text eingegeben hat Feld, sollte ich is_null() oder empty() verwenden?
* Antwort: Muss empty() verwenden, kann is_null() nicht verwenden
* Grund: Weil der Wert des Textfelds standardmäßig ist zu einer leeren Zeichenfolge, also value = '', wurde ihm ein Wert zugewiesen, es ist nur ein leerer Wert
* Daher kann is_null() nur prüfen, ob der Wert null ist oder nicht, und empty() muss verwendet werden
* isset() ist die Umkehroperation von null
* Zusammenfassung: Variablen sind bereits vorhanden und ihr Wert ist nicht null, gibt true zurück, andernfalls false
$domain = 'www.php.cn'; $name = null; $job; echo '<hr>'; var_dump(isset($var)); var_dump(isset($domain) ? true : false); var_dump(isset($name) ? true : false); var_dump(isset($job) ? true : false); //false,未赋值并不报错,与is_null不同
* Zusammenfassung:
* 1. Variablen haben zwei Zustände: deklariert, nicht deklariert
* 2. Deklarierte Variablen haben auch zwei Zustände: zugewiesen (initialisiert), nicht zugewiesen (nicht initialisiert)
* 3. Variablen können Werttypen zugewiesen werden: Null, leerer Wert, Nicht-Null-Wert
* 3.1: Nullwert: is_null()
* 3.2: Leerer Wert : empty()
* 3.3: Leerer oder nicht leerer Wert: isset()
* Grundlegende Nutzungsprinzipien:
* 1. Für nicht deklarierte Variablen gilt nur isset( ) kann zur Beurteilung verwendet werden
* 2. Für deklarierte Variablen ist es leer. Verwenden Sie empty() zur Beurteilung und is_null() zur Beurteilung, ob initialisiert werden soll
echo '<hr color="red">';
//Das erste Szenario : Die Variable ist nicht deklariert
//$a ist nicht deklariert
var_dump(isset($a) ? true : false); //不报错,返回false表示未声明
/ /Beispiel: Bei der Anzeige von Daten in Seiten, wenn in der aktuellen URL eine Paging-Variable page vorhanden ist, wird die angegebene Seite wird ausgegeben, andernfalls wird standardmäßig die erste Seite mit Daten ausgegeben
$name = isset($_GET['page']) ? $_GET['page'] : 1;
//is_null gibt eine Warnung aus und führt automatisch $a = null aus, sodass true zurückgegeben wird
var_dump(is_null($a) ? true : false);
//Da nicht deklarierte Variablen automatisch auf Null initialisiert werden und Variablen mit einem Nullwert von empty() als leer betrachtet werden, wird true zurückgegeben
var_dump(empty($a) ? true : false);
//Zweites Szenario: Die Variable hat deklariert worden
$a = 'www.php.cn'; $b = ''; $c = null; echo '<hr color="blue">'; var_dump(isset($a)); //有无判断 var_dump(empty($b)); //非空判断 var_dump(is_null($c)); //null
//Prinzipien für die Initialisierung von Variablen:
//1. Wenn der Variablentyp im Voraus bekannt ist
$num = 0; //数值 $userName = ''; //字符串 $isPass = false; //布尔 $books = []; //数组 $student = null; //对象
//2 Da die Variable letztendlich hält, wird empfohlen, sie mit null
zu initialisieren