Heim >Backend-Entwicklung >PHP-Tutorial >Wie vermeide ich umständliche Variablenprüfungen in PHP-Code?
Ursprüngliches Problem:
Die unkontrollierte Verwendung von Variablen in PHP-Anwendungen kann zu zahlreichen Problemen führen „Undefiniert“- und „Offset“-Fehler beim Ausführen mit aktivierter E_NOTICE-Fehlerstufe. Die Behebung dieser Fehler durch übermäßige Verwendung der Funktionen isset(), empty() und array_key_exists() kann den Code aufblähen und die Lesbarkeit beeinträchtigen.
Empfohlener Ansatz:
Stattdessen Wenn Sie sich ausschließlich auf Variablenprüfungen verlassen, sollten Sie über eine Umstrukturierung Ihres Codes nachdenken, um deren Notwendigkeit zu minimieren. So geht's:
Weisen Sie Variablen bei der Initialisierung Standardwerte zu. Dadurch entfällt die Notwendigkeit von isset()-Prüfungen, da Variablen immer einen definierten Wert haben, unabhängig davon, ob sie extern zugewiesen werden.
Beispiel:
$foo = null; // Null $bar = $baz = 'default value'; // Default string
Geben Sie Standardwerte für Funktionsargumente an, um Nullwerte zu vermeiden. Dadurch können Funktionen mit vorhersehbaren Eingaben arbeiten, ohne dass isset()-Prüfungen erforderlich sind.
Beispiel:
function foo($bar = null) { ... }
Verwenden Sie array_merge(), um Standardwerte mit eingehenden Datenquellen zu kombinieren. Dadurch werden Arrays mit bekannten Standardwerten initialisiert, wodurch isset()-Prüfungen überflüssig werden.
Beispiel:
$defaults = ['foo' => false, 'bar' => true, 'baz' => 'default value']; $values = array_merge($defaults, $incoming_array);
Diese Funktion sollte nur in Ausnahmefällen verwendet werden, in denen das Vorhandensein oder Fehlen eines Schlüssels entscheidend ist. Im Allgemeinen macht die Initialisierung von Variablen oder Arrays die Notwendigkeit von array_key_exists()-Prüfungen überflüssig.
Beispiel:
$array = ['key' => null]; if (array_key_exists('key', $array)) { ... }
Verwenden Sie isset()- und empty()-Prüfungen in Vorlagen sparsam. Wenn eine Variable nicht gesetzt oder leer ist, sollte sie durch einen Standardwert oder die entsprechende Fehlerbehandlungsmeldung ersetzt werden.
Beispiel:
<?php if (isset($foo)): ?> <!-- Output content --> <?php else: ?> <p>Foo is not set.</p> <?php endif; ?>
Indem Sie diese befolgen Richtlinien können Sie die Abhängigkeit von isset()-, empty()- und array_key_exists()-Prüfungen erheblich reduzieren und gleichzeitig die E_NOTICE-Kompatibilität beibehalten. Dieser Ansatz führt zu saubererem, besser lesbarem Code und verbessert die Zuverlässigkeit und Wartbarkeit Ihres Codes.
Das obige ist der detaillierte Inhalt vonWie vermeide ich umständliche Variablenprüfungen in PHP-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!