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!