Aktueller Standort: Startseite> Neueste Artikel> Vergleich der Parameter vor und nach der Simulations -API -Anfrage

Vergleich der Parameter vor und nach der Simulations -API -Anfrage

M66 2025-05-17

Bei der Entwicklung von APIs müssen möglicherweise angeforderte Parameter mit den erwarteten Parametern verglichen werden, um festzustellen, ob sie sich geändert haben. Die von PHP bereitgestellte array_diff_assoc -Funktion kann uns dabei helfen, dies zu erreichen. Diese Funktion wird verwendet, um Schlüsselwertpaare von zwei Arrays zu vergleichen und verschiedene Teile zwischen ihnen zurückzugeben. Als nächstes werden wir vorstellen, wie Sie diese Funktion verwenden, um den Vergleich von Parametern vor und nach API -Anforderungen zu simulieren.

1. Grundnutzung der Funktion array_diff_assoc

Zunächst müssen wir die grundlegende Verwendung der Funktion array_diff_assoc verstehen. Diese Funktion wird verwendet, um zwei Arrays zu vergleichen und gibt ein Array zurück, das Schlüsselwertpaare enthält, die im ersten Array vorhanden sind, jedoch nicht im zweiten Array.

Funktionsprototyp:

 array_diff_assoc(array $array1, array $array2): array
  • $ Array1 : Das erste Array (das zu vergleichen).

  • $ array2 : Das zweite Array (das Array, das mit dem ersten Array verglichen wird).

Diese Funktion vergleicht die Schlüsselnamen und Schlüsselwerte des Arrays und gibt einige Schlüsselwertpaare im ersten Array zurück, aber es gibt keinen Teil des zweiten Arrays mit unterschiedlichen Werten.

2. Vergleich der Parameter vor und nach der Simulations -API -Anforderung

Angenommen, wir möchten den Parametervergleich vor und nach der API -Anforderung simulieren, können wir normalerweise Array_diff_assoc verwenden, um uns zu helfen, die Differenz zwischen den Anforderungsparametern und den erwarteten Parametern herauszufinden. Zum Beispiel:

Szene:

Wir haben eine API -Anforderung, bei der der Benutzer die Parameter einreicht. Wir möchten die eingereichten Parameter mit den erwarteten Parametern vergleichen, um festzustellen, ob der Benutzer zusätzliche Parameter einreicht oder die Werte einiger Parameter modifiziert.

Beispielcode:

 <?php
// Parameter vor der Simulationsanforderung
$expectedParams = [
    'user_id' => 123,
    'name' => 'John Doe',
    'email' => 'john.doe@m66.net',
    'phone' => '123-456-7890'
];

// Simulieren Sie die vom Benutzer eingereichten Parameter
$submittedParams = [
    'user_id' => 123,
    'name' => 'John Doe',
    'email' => 'john.doe@m66.net',
    'phone' => '987-654-3210',  // Verschiedene Mobiltelefonnummern
    'address' => '123 Main St'  // Zusätzliche Parameter wurden eingereicht
];

// verwenden array_diff_assoc Vergleich von zwei Arrays
$diff = array_diff_assoc($submittedParams, $expectedParams);

// Ausgangsvergleichsergebnisse
if (!empty($diff)) {
    echo "Die Differenz zwischen den angeforderten Parametern und den erwarteten Parametern ist wie folgt:\n";
    print_r($diff);
} else {
    echo "Die angeforderten Parameter stimmen mit den erwarteten Parametern überein。\n";
}
?>

Code Erläuterung:

  1. $ erwarteteParams : Dies ist der Anforderungsparameter, den wir erwarten, einschließlich vier Felder: User_id , Name , E -Mail und Telefon .

  2. $ subltedParams : Dies ist der vom Benutzer eingereichte Anforderungsparameter. Zusätzlich zu den normalen vier Feldern wird ein zusätzliches Feld eingereicht und das Telefonfeld geändert.

  3. Verwenden Sie Array_Diff_assoc, um SubltedParams und AfterdParams zu vergleichen und die Unterschiede zwischen ihnen herauszufinden.

  4. Wenn es einen Unterschied gibt, verwenden Sie Print_r, um den Differenzteil auszugeben. Wenn es keinen Unterschied gibt, geben Sie eine konsistente Nachricht aus.

Ausgabe:

 Die Differenz zwischen den angeforderten Parametern und den erwarteten Parametern ist wie folgt:
Array
(
    [phone] => 987-654-3210
    [address] => 123 Main St
)

Wie oben gezeigt, zeigt die Ausgabe die Differenz der Benutzeranforderungen an. Der Telefonparameter wurde geändert und die Adresse ist ein unnötiger Parameter.

3.. Erweiterte Verwendung

Manchmal müssen wir nicht nur die Unterschiede zwischen den beiden Arrays vergleichen, sondern auch komplexere Überprüfungen erfordern. Zum Beispiel müssen wir sehen, ob bestimmte Parameter fehlen oder ob bestimmte Schlüsselfelder ein bestimmtes Format erfüllen. Um die Funktionalität zu verbessern, können Sie sie in Verbindung mit anderen PHP -Funktionen bewältigen.

Beispiel: Fehlende Parameterprüfung

 <?php
$missingParams = array_diff_key($expectedParams, $submittedParams);
if (!empty($missingParams)) {
    echo "Die folgenden Parameter fehlen:\n";
    print_r($missingParams);
} else {
    echo "Alle erwarteten Parameter wurden eingereicht。\n";
}
?>

In diesem Beispiel wird Array_diff_key verwendet, um Schlüssebamen zu vergleichen, um herauszufinden, welche erwarteten Parameter in der Anforderung fehlen.