Heim  >  Artikel  >  Backend-Entwicklung  >  Ein Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen

Ein Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen

不言
不言Original
2018-07-06 15:50:453899Durchsuche

Dieser Artikel stellt hauptsächlich den Unterschied zwischen isset und leeren Funktionen mit einem Bild vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.

Lassen Sie uns kurz über isset sprechen ist der Unterschied zwischen leer und leer?

Wenn Sie in einem Vorstellungsgespräch sind und der Interviewer zufällig diese Frage stellt. Sie können wie folgt antworten:

  • Wenn der Variablenwert 0, eine leere Zeichenfolge, ein leeres Array usw. ist, denkt empty, dass er leer ist, während isset denkt, dass er nicht leer ist .

  • Wenn die Variable nicht existiert, betrachten sowohl isset als auch empty sie als leer.

  • Es wird empfohlen, die isset-Funktion zu verwenden, um Fallstricke bei der leeren Verwendung zu vermeiden.

Wenn Sie detailliertere Unterschiede zwischen ihnen erfahren möchten, lesen Sie bitte weiter...

Ein Bild, um es gründlich zu verdeutlichen

Ich habe ein Bild mit ProcessOn gezeichnet

Hinweis:

  • Zum besseren Vergleich ist die leere Funktion hier invertiert. Beachten Sie, dass !empty()

  • "", 0, "0", FALSE, array()... Dieser Zustand ist nicht erfüllt, Sie können ihn selbst testen

  • Wenn Sie verwirrt aussehen, überspringen Sie diesen Abschnitt bitte vorerst

Ein Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen

Dies ist das Rückgabeergebnis, wenn isset empty verschiedenen Variablen entspricht. Die Unterschiede zwischen den beiden sind in diesem Bild zusammengefasst.

Die Leistung von isset im grün gepunkteten Feld und die Leistung von !empty im gelb gepunkteten Feld. Es ist ersichtlich, dass empty mehr Bedingungen beurteilen muss als isset, um das Rückgabeergebnis zu bestimmen.

Wenn Sie etwas nicht verstehen oder sich nicht an alle Details erinnern können. Lassen Sie mich Ihnen sagen, wie Sie sich alles über dieses Bild merken können!

Gedanken zum Mineralwasser

Stellen Sie sich vor, dass jetzt eine Mineralwasserflasche auf dem Tisch steht. Die Flasche kann diese 4 Bedingungen haben:

  • Wasserflasche: Es ist Wasser in der Flasche

  • Luftflasche: Das Wasser ist fertig, die Flasche. Es ist nur noch Luft drin

  • Vakuumflasche: Die Flasche wurde genommen und vakuumiert, aber da war nichts drin

  • Da war keine Flasche auf dem Tisch

Variablen zu Mineralwasserflaschen analogisieren, entsprechend 4 Zuständen:

  • Allgemeiner Wert: Die Speichereinheit enthält allgemeine Werte

  • Luftwert: Variablen sind „“, 0, „0“, FALSE, array()...

  • Vakuumwert: Variable ist NULL

  • Variable existiert nicht oder ist nicht definiert

Grundschüler leer und Mittelschule student isset

Angenommen, wir können isset empty verwenden. Die Funktion muss ermitteln, ob eine Mineralwasserflasche leer ist. Sie erhält dieses Ergebnis:

  • Wenn es sich um eine Luft handelt Flasche, dann denkt leer, dass sie leer ist (sie sieht leer aus), aber isset denkt, sie ist nicht leer (sie hat Luft!)

  • Wenn es eine Vakuumflasche ist, dann leeres isset wird denken, dass es leer ist

  • Wenn es eine Wasserflasche ist, dann wird leeres isset denken, dass es nicht leer ist

Das kann sein Wenn man sieht, dass die Flasche leer ist, ist das ein Grundschüler, der die Naturwissenschaften nicht versteht und denkt, dass die Flasche leer aussieht. Es ist eine leere Flasche! Tatsächlich ist er noch zu jung~

Und Isset ist ein Mittelschüler, der Physik studiert hat und das Konzept von „Vakuum“ versteht – er weiß, dass noch Luft in der Flasche ist!

In der ersten der drei oben genannten Situationen verfügt der erfahrene Fahrer also über reiche Erfahrung und ist zu einem anderen Schluss gekommen als der Grundschüler, der leer ist.

Jetzt können wir wissen, dass das Ergebnis wie folgt aussieht, wenn wir diese beiden Funktionen zur Beurteilung von Variablen verwenden:

  • Wenn es eine ist Luftwert (" ", 0, "0", FALSE, array()...), dann denkt empty, dass es leer ist, und isset denkt, es ist nicht leer

  • Wenn es sich um einen Vakuumwert (NULL) handelt, dann betrachtet empty isset ihn als leer

  • Wenn es sich um einen allgemeinen Wert handelt (außer diesen in zwei Fällen, d. h. es ist Wasser in der Flasche), dann denkt das leere Isset, dass es nicht leer ist

Dies ist die Interviewantwort zu Beginn. Ist es nun leicht zu verstehen?

Detaillierter Vergleich

isset()-Funktion

Format: bool isset ( Mixed var [, Mixed var [, ...]] )

Funktion : Überprüfen Sie, 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, geben Sie auch FALSE zurück
Wenn die Variable vorhanden ist und der Wert nicht NULL ist, geben Sie TRUE zurück
Bei der gleichzeitigen Überprüfung mehrerer Variablen wird TRUE nur zurückgegeben, wenn jedes einzelne Element die vorherige Anforderung erfüllt, andernfalls ist das Ergebnis FALSE

Weitere Anweisungen:
Verwenden Sie unset(). Nach dem Freigeben der Variablen ist sie nicht mehr isset().
PHP-Funktion isset() kann nur für Variablen verwendet werden. Die Übergabe anderer Parameter führt zu einem Parsing-Fehler.
Um zu überprüfen, ob eine Konstante gesetzt wurde, verwenden Sie die Funktion define().

empty()-Funktion

Format: bool leer (gemischte Variable)

Funktion: Prüfen, ob eine Variable leer ist

Rückgabewert:

Wenn die Variable nicht existiert, wird TRUE zurückgegeben
Wenn die Variable existiert und ihr Wert „“ ist, 0 , „0“, NULL, FALSE, array(), var $var und Objekte ohne Attribute, geben TURE zurück
Wenn die Variable existiert und der Wert nicht „“, 0, „0“, NULL, FALSE, Array ist (), var $var und Objekte ohne Attribute geben FALSE zurück

Weitere Erklärung:
Der Rückgabewert von empty()=!(boolean) var, aber es wird keine Warnmeldung generiert, da die Variable ist undefiniert. 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 überprüfen, ob eine Konstante gesetzt wurde, verwenden Sie die Funktion define().

Der vollständigste Unterschied

Jetzt fügen wir Mineralwasser und Variablen zusammen und zeichnen das vollständigste Differenzdiagramm:

Wenn Sie den vorherigen Inhalt verstehen können, werden Sie ihn gründlich verstehen Diese beiden Bilder und der Unterschied zwischen „isset empty“ werden sich in Ihr Gedächtnis einprägen. Wenn Sie immer noch jemand nach dem Unterschied zwischen den beiden fragt, werfen Sie dieses Bild sofort weg >

Wenn Sie interessiert sind, können Sie die Beispiele im offiziellen Handbuch weiterlesen...

PHP-HandbuchEin Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen

Ein Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen Dies ist ein Zhang, der den Unterschied zwischen leerem isset if($var) zeigt:

Der Rückgabewert von isset() ist gleich! ()

Ein Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren FunktionenDer Rückgabewert von empty() entspricht !boolean($x). if($x) konvertiert die Variable tatsächlich zuerst in einen booleschen Typ und führt dann eine bedingte Beurteilung durch

Wenn $var nicht existiert, verursacht die if($x)-Anweisung eine Ausnahme auf E_NOTICE-Ebene in PHP, aber Es handelt sich nicht um einen schwerwiegenden Fehler.

empty($x) und isset($x) meldet keine Ausnahmen

  • Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
  • Verwandte Empfehlungen:

    Schleifentest der Effizienz des PHP-Lesens und -Schreibens in Redis und Shared Memory (SHM) unter Centos

PHP implementiert die Shared-Memory-Prozesskommunikationsfunktion (_shm)

Das obige ist der detaillierte Inhalt vonEin Bild zur Verdeutlichung des Unterschieds zwischen isset- und leeren Funktionen. 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