Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich der PHP-Funktionen isset(), empty() und is_null()

Vergleich der PHP-Funktionen isset(), empty() und is_null()

王林
王林Original
2023-09-04 20:25:06773Durchsuche

Vergleich der PHP-Funktionen isset(), empty() und is_null()

Variablen werden Sie in fast jedem in PHP geschriebenen Programm verwenden. Meistens haben diese Variablen einen Wert und wir erstellen sie normalerweise mit einem Anfangswert. Es besteht jedoch immer die Möglichkeit, dass einige der von Ihnen verwendeten Variablen nicht initialisiert sind. Dies kann dazu führen, dass PHP Warnungen vor der Verwendung undefinierter Variablen ausgibt.

Es kann viele Gründe für undefinierte Variablen geben. Das häufigste Problem besteht darin, dass Sie die Variable nicht wirklich definieren oder dass Sie bei der Wiederverwendung an anderer Stelle einen Tippfehler machen. Das ist lediglich ein Programmierfehler. Eine andere Möglichkeit, die zu einer undefinierten Variablen führen könnte, besteht jedoch darin, dass sie bedingt definiert ist.

Möglicherweise stellen Sie auch fest, dass die Variable den Wert NULL hat. Dies kann verschiedene Gründe haben. Beispielsweise wurde die Variable möglicherweise einfach nicht mit einem Wert initialisiert. Oder die Funktion gibt möglicherweise null zurück, um auf einen Fehler hinzuweisen.

Unabhängig davon kann die Verwendung einer Variablen vor der Definition oder wenn sie einen Nullwert hat, unbeabsichtigte Folgen haben. In diesem Tutorial zeige ich Ihnen, wie Sie überprüfen, ob ein Element definiert ist und ob es leer oder null ist.

Mit isset()empty()is_null() können Sie prüfen, ob eine oder alle Bedingungen wahr oder falsch sind.

Definition

Beginnen wir mit einigen Definitionen.

  1. isset():您可以使用 isset() 来确定变量是否已声明并且与 null Anders.
  2. empty():用于判断变量是否存在且变量的值不等于 false.
  3. is_null():该函数用于检查变量是否为 null.

PHP isset()empty()

Wie wir der Definition entnehmen können, gibt isset() true zurück, wenn wir zuvor die Variable definiert und ihren Wert auf etwas anderes als NULL 以外的值,则 isset() 将返回 true。这可以包括 0、空字符串或 false。另一方面,每当变量值设置为计算结果为 false 时,empty() 将返回 true — 我们称这些为“假”值。 falsey 值的示例包括 0、空字符串 "" 和字符串 "0"、空数组、NULL,或者当然是布尔值 false gesetzt haben. Dies kann 0, die leere Zeichenfolge oder false sein. Andererseits gibt

immer dann true zurück, wenn ein Variablenwert so eingestellt ist, dass er als false ausgewertet wird – wir nennen diese Werte „falsch“. Beispiele für falsche Werte sind 0, die leere Zeichenfolge "" und die Zeichenfolge "0", das leere Array,

oder of Natürlich ein boolescher Wert false. isset()empty() Eine Ähnlichkeit zwischen

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. empty() 可以使用 isset()

<?php

$fruit = '';

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

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

?>

Bitte beachten Sie, dass

Funktionsschreiben: empty()

<?php

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

?>

Natürlich ist es meist einfacher, die eingebaute

-Funktion zu nutzen. isset()is_null()

PHP

NULL,则 is_null() 函数将返回 true。否则,它只是返回 false。另一方面,只要定义了变量并且其值不为 NULLisset() 就会返回 true

Die Funktion is_null() gibt true zurück, wenn der Wert der Variablen explizit auf

gesetzt wurde. Andernfalls wird einfach false zurückgegeben. Andererseits gibt isset() immer dann true zurück, wenn eine Variable definiert ist und ihr Wert nicht

ist.

empty()is_null()Hier ist ein einfaches Beispiel, um den Unterschied zwischen ihnen zu zeigen.

<?php

$fruit = NULL;

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

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

?>

PHP false,则 empty() 函数将返回 true。这可能意味着空字符串、NULL、整数 0 或没有元素的数组。另一方面,仅当变量的值为 NULL 时,is_null() 才会返回 true und is_null()

Wenn der Wert der Variablen false ergibt, gibt die

-Funktion true zurück. Dies kann die leere Zeichenfolge

, die Ganzzahl 0 oder ein Array ohne Elemente bedeuten. Andererseits gibt is_null() nur dann true zurück, wenn der Wert der Variablen

ist.

Hier ist ein einfaches Beispiel, um den Unterschied zwischen ihnen zu zeigen.

<?php

$person = ['first_name' => 'Monty', 'last_name' => '', 'age' => '83', 'fav_movie' => NULL];

if(empty($person['last_name'])) {
    if(is_null($person['last_name'])) {
        echo 'The last name is set to NULL.';
    } else {
        echo 'The last name is probably an empty string.';
    }
}
// Output: The last name is probably an empty string.

if(is_null($person['fav_movie'])) {
    echo $person['first_name'].' did not specify a favorite movie.';
}
// Output: Monty did not specify a favorite movie.
empty()is_null() 不同,您可以一次向 isset() 传递多个值,以同时检查其中是否有任何未定义或设置为 NULL。在这种情况下,如果传递的值都不是 NULL,则 isset() 将仅返回 trueWichtige Punkte, die Sie beachten sollten

Es gibt zwei Tipps, mit denen Sie saubereren Code schreiben und Fehler in der Zukunft vermeiden können. == 来检查值是否为 NULL。这将为错误值(例如计算为 false

1. Im Gegensatz zu

und is_null() können Sie mehrere Werte gleichzeitig an isset() übergeben, um zu prüfen, ob einer davon undefiniert oder auf

gesetzt ist zur gleichen Zeit. In diesem Fall gibt isset() nur dann true zurück, wenn keiner der übergebenen Werte

ist. isset()empty()is_null()

2. Verwenden Sie nicht ==, um zu überprüfen, ob der Wert 🎜 ist. Dadurch werden falsch-positive Ergebnisse für fehlerhafte Werte bereitgestellt, beispielsweise eine leere Zeichenfolge, die als false ausgewertet wird. 🎜 🎜Abschließende Gedanken🎜 🎜Dieses Tutorial erklärt schnell den Unterschied zwischen isset(), 🎜 und is_null(). Hoffentlich können Sie jetzt feststellen, welche davon sich am besten für die Verwendung in Ihrem Code eignet. 🎜

Das obige ist der detaillierte Inhalt vonVergleich der PHP-Funktionen isset(), empty() und is_null(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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