In PHP sind Assert () und Array_Diff_key () zwei sehr nützliche Funktionen. Ersteres wird normalerweise verwendet, um Behauptungen vorzulegen und zu überprüfen, ob ein bestimmter Zustand gilt, während letztere verwendet wird, um die Schlüssel von zwei Arrays und Rückgabetasten zu vergleichen, die nicht im zweiten Array enthalten sind. Wir können diese beiden Funktionen in Kombination verwenden, um eine einfache und effektive Assertion -Logik zu implementieren, die uns hilft, schnelle bedingte Überprüfungen in unserem Code durchzuführen. In diesem Artikel wird ausführlich erläutert, wie diese beiden Funktionen verwendet werden, um eine einfache Assertion -Logik zu implementieren.
Die Funktion assert () wird hauptsächlich in PHP verwendet, um zu überprüfen, ob eine bestimmte Bedingung wahr ist. Wenn die Bedingung falsch ist, wird ein Fehler ausgelöst. Diese Funktion wird häufig zum Debuggen und Testcode verwendet, um sicherzustellen, dass kritische Bedingungen während der Entwicklung immer zutreffen.
assert(expression);
Ausdruck ist ein bedingter Ausdruck, der validiert werden muss. Wenn das Ergebnis des Ausdrucks falsch ist, wird ein Fehler ausgelöst.
$age = 20;
assert($age > 18); // Wenn $age Weniger als oder gleich zu 18,Eine Warnung wird ausgelöst
Im obigen Code wird Assert () verwendet, um zu prüfen, ob $ Age mehr als 18 ist. Wenn die Bedingung falsch ist, löst PHP eine Warnung aus.
Die Funktion array_diff_key () wird verwendet, um die Tasten von zwei Arrays zu vergleichen und gibt ein neues Array zurück, das die Schlüsselwertpaare im ersten Array enthält, jedoch nicht im zweiten Array.
array_diff_key(array $array1, array $array2): array
Array1 und Array2 sind zwei Arrays, die verglichen werden müssen.
Diese Funktion gibt ein Array zurück, das alle Schlüssel in Array1 enthält, jedoch nicht in Array2 .
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['a' => 4, 'c' => 5];
$result = array_diff_key($array1, $array2);
print_r($result);
Ausgabe:
Array
(
[b] => 2
)
Im obigen Code vergleicht Array_diff_key () die Schlüssel von $ array1 und $ array2 und gibt ein neues Array zurück, das nur Schlüssel enthält, die in $ array1 , aber nicht in $ array2 sind.
Durch Kombination von Assert () und Array_Diff_key () können wir eine einfache Assertion -Logik implementieren, indem wir überprüfen, ob ein Array die erforderlichen Schlüssel enthält.
Angenommen, wir haben ein assoziatives Array, das die grundlegenden Informationen des Benutzers speichert, einschließlich Schlüssel wie Name , E -Mail und Alter . Wir möchten überprüfen, ob das Array mindestens diese drei Schlüssel enthält. Wenn jemand fehlt, können wir einen Behauptungsfehler auslösen.
<?php
// Angenommen, dies ist die eingehenden Benutzerdaten
$userData = [
'name' => 'John Doe',
'email' => 'john.doe@m66.net',
// 'age' Schlüssel fehlen
];
// Brauche Schlüssel
$requiredKeys = ['name', 'email', 'age'];
// Vergleichsschlüssel
$missingKeys = array_diff_key(array_flip($requiredKeys), $userData);
// Wenn有缺失的键,Löst die Behauptung aus
assert(empty($missingKeys), 'Fehlen der notwendigen Schlüssel:' . implode(', ', array_keys($missingKeys)));
// Wenn断言通过,Weiter ausführen
echo 'Füllen Sie Benutzerdaten aus,Weiter verarbeiten...';
?>
Benutzerdaten: Wir definieren ein $ userData -Array, das die grundlegenden Informationen des Benutzers enthält. Hier haben wir den Altersschlüssel absichtlich verpasst.
Erforderliche Schlüssel: Das Array $ forure forhring keys enthält alle Schlüssel, die wir in den Benutzerdaten erwarten.
Vergleichen Sie Schlüssel: Verwenden Sie Array_Diff_Key (), um die Schlüssel in $ userData mit den Schlüssel in $ forure forure forsureKeys zu vergleichen. Wenn es fehlende Schlüsseln gibt, enthält das $ MissingKeys -Array diese fehlenden Schlüssel.
Behauptung: Wenn das Array von $ vermisstkeys nicht leer ist, bedeutet dies, dass es einen fehlenden Schlüssel gibt. Wir lösen einen Behauptungsfehler über die Funktion assert () aus und geben den fehlenden Schlüssellamen aus.
Durch Kombinieren von Assert () und array_diff_key () können wir die Assertion -Überprüfungen für Array -Daten sehr bequem durchführen. Insbesondere bei der Verarbeitung von Benutzereingaben oder Datenüberprüfungen kann diese Methode die Datenintegrität sicherstellen und Fehler vermeiden, die durch das Fehlen der erforderlichen Daten im nachfolgenden Code verursacht werden. Als leichtes Debugging-Tool kann Assert () dabei helfen, potenzielle Probleme während der Entwicklungsphase rechtzeitig zu erfassen, während Array_diff_key () eine prägnante und effiziente Möglichkeit bietet, Schlüsselwertpaare zu vergleichen.
Auf diese Weise können Sie beim Schreiben von Code sicherer sein und die Stabilität und Zuverlässigkeit Ihres Programms sicherstellen.