Heim > Backend-Entwicklung > PHP-Tutorial > Was ist der Unterschied zwischen der Verwendung der Isset-Funktion und der Empty-Funktion in PHP? (umfassend)

Was ist der Unterschied zwischen der Verwendung der Isset-Funktion und der Empty-Funktion in PHP? (umfassend)

不言
Freigeben: 2023-04-03 22:22:02
Original
1241 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Unterschied zwischen der Verwendung der isset-Funktion und der leeren Funktion in PHP? (Umfassend), es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.

Die Funktion isset() von PHP wird im Allgemeinen verwendet, um zu erkennen, ob eine Variable gesetzt ist
Format: bool isset ( Mixed var [, Mixed var [, ...]] )

Funktion: Erkennen, ob die Variable gesetzt ist

Rückgabewert:

Wenn die Variable nicht existiert, geben Sie FALSE zurück
Wenn die Variable existiert und ihr Wert NULL ist, gibt auch FALSE zurück
Wenn die Variable existiert und der Wert nicht NULL ist, wird TRUE zurückgegeben
Bei der gleichzeitigen Prüfung mehrerer Variablen wird TRUE nur zurückgegeben, wenn jedes einzelne Element zutrifft die vorherige Anforderung, sonst ist das Ergebnis FALSE
Versionen: PHP 3, PHP 4, PHP 5
Weitere Anweisungen:
Nachdem wir eine Variable mit unset() freigegeben haben, ist sie nicht mehr isset().
Die PHP-Funktion isset() kann nur für Variablen verwendet werden. Die Übergabe anderer Parameter führt zu einem Parsing-Fehler.
Um zu erkennen, ob eine Konstante festgelegt wurde, verwenden Sie die Funktion define().

PHPs empty()-Funktion bestimmt, ob der Wert leer ist

Format: bool leer (gemischte Variable)

Funktion : Überprüfen Sie, ob eine Variable leer ist

Rückgabewert:

Wenn die Variable nicht existiert, geben Sie TRUE zurück
Wenn die Variable existiert und ihr Wert „“ ist , 0 , „0“, NULL,, FALSE, array(), var $var; und Objekte ohne Attribute, geben TRUE zurück
Wenn die Variable existiert und der Wert nicht „“, 0, „0“, NULL ist ,, FALSE, array(), var $var; und Objekte ohne Attribute, geben FALSE zurück
Versionen: PHP 3, PHP 4, PHP 5
Weitere Anweisungen:
Rückgabewert von empty() = ! (boolean) var, es wird jedoch keine Warnmeldung generiert, da die Variable undefiniert ist. Weitere Informationen finden Sie unter Konvertieren in einen booleschen Wert.
empty() kann nur für Variablen verwendet werden. Die Übergabe anderer Parameter führt zu einem Paser-Fehler und beendet den Vorgang.
Um zu erkennen, ob eine Konstante festgelegt wurde, verwenden Sie die Funktion define().

Beispiel: Ein einfacher Vergleich von empty() und isset()

<?php 
$var = 0; 
// 结果为 true,因为 $var 为空 
if (empty($var)) { 
echo &#39;$var is either 0 or not set at all&#39;; 
} 
// 结果为 false,因为 $var 已设置 
if (!isset($var)) { 
echo &#39;$var is not set at all&#39;; 
} 
?>
Nach dem Login kopieren

Hinweis: Da es sich um ein Sprachkonstrukt und nicht um eine Funktion handelt, kann dies nicht der Fall sein Wird von einer Variablenfunktion aufgerufen.
Hinweis: empty() erkennt nur Variablen und das Erkennen von allem, was keine Variable ist, führt zu einem Analysefehler. Mit anderen Worten, die folgende Anweisung funktioniert nicht: empty(addslashes($name)).
Das Folgende ist ein detaillierter Beispielcode für isset- und leere Funktionen, der von Script House getestet wurde. Nach dem Lesen ist es im Grunde dasselbe:

<?php 
error_reporting(E_ALL); 
echo &#39;<B>未定义$var</b><Br>&#39;; 
echo "isset测试:<Br>"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = \&#39;\&#39;</b><Br>&#39;; 
echo "isset测试:<Br>"; 
$var = &#39;&#39;; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = 0</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = 0 ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = null</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = null ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 

echo &#39;<B>$var ="php"</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = "php"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 

echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
?>
Nach dem Login kopieren

Beim Schreiben von Seitenprogrammen in PHP verwende ich häufig Variablenverarbeitungsfunktionen, um festzustellen, ob ein Variablenwert am Ende der PHP-Seite leer ist. Anfangs war ich es gewohnt, die Funktion empty() zu verwenden, aber ich habe einige Probleme festgestellt , also habe ich auf die Funktion isset() umgestellt, das Problem ist nicht mehr da.
Wie der Name schon sagt, bestimmt empty(), ob eine Variable „leer“ ist, und isset() bestimmt, ob eine Variable gesetzt wurde. Es ist dieses sogenannte „Wie der Name schon sagt“, das mich zu Beginn dazu veranlasst hat, einige Umwege zu machen: Wenn ein Variablenwert gleich 0 ist, ist empty () auch wahr (True), sodass einige Unfälle auftreten. Es stellt sich heraus, dass empty () und isset () zwar Variablenverarbeitungsfunktionen sind, aber beide verwendet werden, um zu bestimmen, ob die Variable konfiguriert wurde. Sie weisen jedoch bestimmte Unterschiede auf: empty erkennt auch, ob die Variable leer oder Null ist. Wenn der Wert einer Variablen 0 ist, geht empty() davon aus, dass die Variable leer ist, was bedeutet, dass sie nicht gesetzt ist.
Um beispielsweise die Variable $id zu erkennen, verwenden Sie empty() und isset(), um zu erkennen, ob die Variable $id konfiguriert wurde. Beide geben unterschiedliche Werte zurück ​- empty() bedeutet, dass es keine Konfiguration gibt, isset() kann den Wert von $id abrufen:

$id=0; 
empty($id)?print "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s empty . 
print "<br>"; 
!isset($id)?print "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s 0 .
Nach dem Login kopieren

Dies bedeutet, dass die Variable möglicherweise verwendet wird, wenn wir die Variablenverarbeitungsfunktion verwenden Wenn Sie einen Wert von 0 haben, verwenden Sie Seien Sie vorsichtig mit empty (), es wäre klüger, es zu diesem Zeitpunkt durch isset zu ersetzen.
Wenn der URL-Endparameter einer PHP-Seite id=0 erscheint (zum Beispiel: test.php?id=0), versuchen Sie zu vergleichen:

if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
Nach dem Login kopieren

Der folgende Code kann separat ausgeführt werden, um die obige Schlussfolgerung zu erkennen:

if(empty($id)) $id=1; 
print $id; // 得到 1 
if(!isset($id)) $id=1; 
print $id; //得到 0
Nach dem Login kopieren

Um über ihre Verbindung zu sprechen, ist ihr gemeinsamer Punkt, dass empty() und isset() beide Variablenverarbeitung sind Funktionen, und ihre Funktion besteht darin, zu bestimmen, ob die Variable bereits konfiguriert ist. Gerade aufgrund ihrer großen Ähnlichkeit bei der Verarbeitung von Variablen haben sie ein unzureichendes Verständnis ihrer Beziehung. Wenn Sie nur die beiden Funktionen empty() und isset() selbst betrachten, werden die Leute verwirrter. Betrachten Sie es aus einem anderen Blickwinkel. Die Verarbeitungsobjekte von empty() und isset() sind nichts anderes als undefinierte Variablen, 0 und leere Strings.
Wenn die Variable 0 ist, gibt empty() TRUE und isset() TRUE zurück;

Wenn die Variable eine leere Zeichenfolge ist, gibt empty() TRUE zurück, isset() gibt TRUE zurück.
Wenn die Variable undefiniert ist, gibt empty() TRUE zurück. isset() gibt FLASE zurück;

Die Erklärung von empty() im Handbuch lautet wie folgt:

Beschreibung bool leer (gemischte Variable)
Wenn var ein nicht leerer oder ungleich Null-Wert ist, gibt empty() FALSE zurück. Mit anderen Worten: „“, 0, „0“, NULL, FALSE, array(), var $var; und Objekte ohne Eigenschaften werden als leer betrachtet und TRUE wird zurückgegeben, wenn var leer ist.
Die Erklärung von isset() im Handbuch lautet wie folgt:

isset() erkennt, ob eine Variable vorhanden ist ist gesetzt

Description bool isset ( Mixed var [, Mixed var [, ...]] )

Gibt TRUE zurück, wenn var existiert, andernfalls wird FALSE zurückgegeben.

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 („?“) nicht der NULL-Konstante von PHP entspricht.
Warnung: isset() kann nur mit Variablen verwendet werden, da die Übergabe anderer Parameter einen Parsing-Fehler verursacht. Wenn Sie überprüfen möchten, ob eine Konstante gesetzt wurde, können Sie die Funktion define() verwenden.

Sie können die isset-Funktion verwenden, wenn Sie beurteilen möchten, ob eine Variable deklariert wurde.
Sie können sie verwenden, wenn Sie beurteilen möchten, ob eine Der Variablen wurden Daten zugewiesen und sie ist nicht leer.
Wenn Sie feststellen möchten, dass eine Variable vorhanden und nicht leer ist, verwenden Sie zuerst die Funktion isset und dann die leere Funktion.

Verwandte Empfehlungen:

Die Funktion empty() und die Funktion isset( in PHP)

Der Unterschied zwischen der Funktion isset() in PHP und der Funktion empty()_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Verwendung der Isset-Funktion und der Empty-Funktion in PHP? (umfassend). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage