Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung des Unterschieds zwischen PHP isset() und empty()

Detaillierte Erklärung des Unterschieds zwischen PHP isset() und empty()

墨辰丷
墨辰丷Original
2018-05-25 15:40:141408Durchsuche

In diesem Artikel wird hauptsächlich der Unterschied zwischen PHP isset() und empty() vorgestellt. Es hat einen sehr guten Referenzwert, schauen wir es uns mit dem Editor unten an

Wenn ich PHP zum Schreiben von Seitenprogrammen verwende, verwende ich häufig Variablenverarbeitungsfunktionen, um zu bestimmen, ob ein bestimmter Variablenwert des Endparameters vorliegt Die PHP-Seite ist leer. Am Anfang war ich es gewohnt, die Funktion empty() zu verwenden, aber ich stellte einige Probleme fest, also wechselte ich zur Funktion isset() und die Probleme verschwanden.

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 konfiguriert ist ist leer oder nicht. 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, wenn $id=0 ist, verwenden Sie empty() und isset(), um zu erkennen, ob die Variable $id konfiguriert wurde. Beide werden zurückgegeben verschiedene Werte - — empty() geht davon aus, dass keine Konfiguration vorliegt, isset() kann den Wert von $id erhalten:

 $id=0;
 empty($id)?print "It's empty .":print "It's $id ."; 
  //结果:It's empty .
 print "
";
 !isset($id)?print "It's empty .":print "It's $id .";
  //结果:It's 0 .

Das bedeutet, wann Wir verwenden die Variablenverarbeitungsfunktion, wenn diese Variable den Wert 0 haben kann. Seien Sie also vorsichtig, wenn Sie empty() verwenden. In diesem Fall wäre es klüger, sie 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

Sie können den folgenden Code separat ausführen, um die obige Schlussfolgerung zu erkennen:

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

Um über ihre Verbindung zu sprechen, ist der gemeinsame Punkt, dass beide leer sind () und isset() sind Die Funktion der Variablenverarbeitungsfunktion besteht darin, festzustellen, ob die Variable konfiguriert wurde. Gerade aufgrund ihrer großen Ähnlichkeit im Prozess der Variablenverarbeitung besteht kein ausreichendes 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

zurück. Wenn die Variable undefiniert ist, wird empty() zurückgegeben Gibt TRUE zurück, isset() gibt FLASE zurück;

Die Erklärung von empty() im Handbuch lautet wie folgt: Beschreibung bool empty( gemischte Variable)Wenn var ein nicht leerer Wert oder ein Wert ungleich Null 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 gesetzt ist Description bool isset ( Mixed var [, Mixed 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 ("

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen PHP isset() und empty(). 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