Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man in PHP zuverlässig auf die Existenz von Variablen testen?

Wie kann man in PHP zuverlässig auf die Existenz von Variablen testen?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 14:03:45585Durchsuche

How to Reliably Test for Variable Existence in PHP?

Erkunden von Methoden zum Testen der Existenz von Variablen in PHP

PHP bietet die Funktion isset(), um die Existenz einer Variablen zu bestimmen. Wie in der Dokumentation erwähnt, kann jedoch nicht zwischen nicht gesetzten Variablen und auf NULL gesetzten Variablen unterschieden werden.

Alternative Ansätze mit Einschränkungen

Ein Versuch, diese Einschränkung zu überwinden, war :

<code class="php">if (isset($v) || @is_null($v)) {...}</code>

Aber is_null() steht auch vor einem ähnlichen Problem und gibt TRUE für nicht gesetzte Variablen zurück. Darüber hinaus verhält sich @($v === NULL) genauso wie @is_null($v), wodurch es unbrauchbar wird.

Zuverlässige Lösung: array_key_exists()

Für Eine zuverlässige Möglichkeit, die Existenz von Variablen zu überprüfen, ist array_key_exists(). Bei der Anwendung auf globale Variablen unterscheidet es effektiv zwischen nicht vorhandenen Variablen und auf NULL gesetzten Variablen.

Demonstration der Unterscheidung

Betrachten Sie das folgende Beispiel:

<code class="php">$a = NULL;
var_dump(array_key_exists('a', $GLOBALS)); // TRUE
var_dump(array_key_exists('b', $GLOBALS)); // FALSE</code>

Die Ausgabe zeigt, dass array_key_exists() die Existenz von $a genau identifiziert, auch wenn es auf NULL gesetzt ist.

Schlussfolgerung

Während isset() und is_null() bietet teilweise Unterstützung für das Testen der Variablenexistenz, array_key_exists() bietet eine präzisere und umfassendere Lösung. Diese Methode unterscheidet korrekt zwischen nicht gesetzten Variablen und Variablen, die sowohl im globalen als auch im lokalen Bereich auf NULL gesetzt sind.

Das obige ist der detaillierte Inhalt vonWie kann man in PHP zuverlässig auf die Existenz von Variablen testen?. 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