Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion über die Unterschiede zwischen isset(), empty() und is_null() in PHP

Eine kurze Diskussion über die Unterschiede zwischen isset(), empty() und is_null() in PHP

青灯夜游
青灯夜游nach vorne
2021-06-25 18:39:534075Durchsuche

In PHP können isset(), empty() und is_null() alle verwendet werden, um den Wert einer Variablen zu testen. Was sind also die Unterschiede zwischen ihnen? Im folgenden Artikel werden diese drei Funktionen verglichen und ihre Unterschiede erläutert.

Eine kurze Diskussion über die Unterschiede zwischen isset(), empty() und is_null() in PHP

Beginnen wir mit einigen Definitionen.

  • isset(): Sie können isset() verwenden, um festzustellen, ob eine Variable deklariert ist und sich von null unterscheidet. isset() : 你可以用isset() 来确定一个变量是否被声明,并且与null 不同。

  • empty() : 它用于确定变量是否存在,并且变量的值没有评估为false

  • is_null() : 这个函数用来检查一个变量是否是null

PHP isset() vs empty()

正如我们从定义中看到的,如果我们之前定义了该变量并将其值设置为NULL 以外的值,那么isset() 将返回true 。这可以包括0 ,一个空字符串或false 。另一方面,只要变量的值被设置为falseempty() 就会返回true ,我们称这些值为 "假值"。错误值的例子包括:0 ,空字符串"" 和字符串"0" ,空数组NULL ,当然还有布尔值false

isset()empty() 之间的一个相似之处是,它们都是语言结构,因此不能使用变量函数来调用。

下面的代码片断应该可以解释这两者之间的区别。

<?php

$fruit = &#39;&#39;;

if(isset($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// Output:  Do you like ?

if(!empty($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

?>

请注意,empty() 可以使用isset() 函数来编写。

<?php

function my_empty($x) {
  return !isset($x) || $x == false
}

当然,通常只是使用内置的empty() 函数更容易。

PHP isset() vs is_null()

如果一个变量的值被明确地设置为NULL ,则is_null() 函数返回true 。否则,它只是返回false 。另一方面,只要定义了一个变量,并且其值不是NULLisset() 将返回true

下面是一个基本的例子来说明它们之间的区别。

<?php

$fruit = NULL;

if(isset($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

if(is_null($fruit)) {
    echo &#39;There is no fruit.&#39;;
}
// Output: There is no fruit.

?>

PHP empty() vs is_null()

如果一个变量的值被评估为falseempty() 函数将返回true 。这可能意味着空字符串,NULL ,整数0 ,或一个没有元素的数组。另一方面,只有当变量的值为NULLis_null() 才会返回true

下面是一个基本的例子来说明它们之间的区别。

<?php

$fruit = NULL;

if(isset($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

if(is_null($fruit)) {
    echo &#39;There is no fruit.&#39;;
}
// Output: There is no fruit.

?>

需要记住的重要事项

有两个提示,你可以用来编写更简洁的代码,并在将来避免错误。

1.与empty()is_null() 不同,你可以一次传递多个值给isset() ,以同时检查其中是否有未定义或设置为NULL 。在这种情况下,isset() ,只有在传递的值都不是NULL ,才会返回true

2.2. 不要使用== 来检查一个值是否是NULL 。这将会给像空字符串这样的评估为false

empty(): Wird verwendet, um zu bestimmen, ob die Variable existiert und der Wert der Variablen nicht als false ausgewertet wurde.

is_null(): Mit dieser Funktion wird überprüft, ob eine Variable null ist. 🎜

🎜PHP isset() vs empty()🎜

🎜 Wie wir aus der Definition ersehen können, gibt isset() true zurück, wenn wir zuvor die Variable definiert und ihren Wert auf etwas anderes als <code>NULL gesetzt haben. Code>. Dies kann 0, eine leere Zeichenfolge oder false sein. Andererseits gibt empty() immer dann true zurück, wenn der Wert einer Variablen auf false gesetzt ist. Wir nennen diese Werte „false“. Werte" ". Beispiele für Fehlerwerte sind: 0, leere Zeichenfolge "" und Zeichenfolge "0", leeres Array NULL > und natürlich der boolesche Wert false. 🎜🎜Eine Ähnlichkeit zwischen isset() und empty() besteht darin, dass es sich bei beiden um Sprachkonstrukte handelt und sie daher nicht mit Variablenfunktionen aufgerufen werden können. 🎜🎜Der folgende Codeausschnitt soll den Unterschied zwischen den beiden erklären. 🎜rrreee🎜Bitte beachten Sie, dass empty() mit der Funktion isset() geschrieben werden kann. 🎜rrreee🎜Natürlich ist es oft einfacher, einfach die integrierte Funktion empty() zu verwenden. 🎜

🎜PHP isset() vs is_null()🎜

🎜Wenn der Wert einer Variablen explizit ist Wenn auf NULL gesetzt, gibt die Funktion is_null() true zurück. Andernfalls wird einfach false zurückgegeben. Wenn andererseits eine Variable definiert ist und ihr Wert nicht NULL ist, gibt isset() true zurück. 🎜🎜Hier ist ein einfaches Beispiel, um den Unterschied zwischen ihnen zu veranschaulichen. 🎜rrreee

🎜PHP empty() vs is_null()🎜

🎜Wenn der Wert einer Variablen ist ausgewertet false ist, gibt die Funktion empty() true zurück. Dies kann eine leere Zeichenfolge, NULL, eine Ganzzahl 0 oder ein Array ohne Elemente bedeuten. Andererseits gibt is_null() nur dann true zurück, wenn der Wert der Variablen NULL ist. 🎜🎜Hier ist ein einfaches Beispiel, um den Unterschied zwischen ihnen zu veranschaulichen. 🎜rrreee

🎜Wichtige Dinge, die Sie beachten sollten🎜

🎜Es gibt zwei Tipps, mit denen Sie saubereren Code schreiben und Fehler in der Zukunft vermeiden können. 🎜🎜1. Im Gegensatz zu empty() und is_null() können Sie zur Überprüfung mehrere Werte gleichzeitig an isset() übergeben gleichzeitig Ob einer von ihnen undefiniert ist oder auf NULL gesetzt ist. In diesem Fall gibt isset() nur dann true zurück, wenn keiner der übergebenen Werte NULL ist. 🎜🎜2.2. Verwenden Sie nicht ==, um zu prüfen, ob ein Wert NULL ist. Dadurch erhalten Werte wie die leere Zeichenfolge, die als false ausgewertet werden, ein falsch positives Ergebnis. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Unterschiede zwischen isset(), empty() und is_null() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen