Position actuelle: Accueil> Derniers articles> Utilisez array_diff_ukey () dans la vérification des paramètres de l'API

Utilisez array_diff_ukey () dans la vérification des paramètres de l'API

M66 2025-06-06

Lors du développement d'API, nous devons généralement effectuer une vérification des paramètres pour garantir que les paramètres de demande envoyés par le client répondent à la structure et au format attendus. PHP fournit de nombreuses fonctions intégrées pour nous aider à implémenter ces tâches, où la fonction array_diff_ukey () peut jouer un rôle très efficace dans la vérification des paramètres.

array_diff_ukey () est une fonction qui compare deux tableaux, mais la différence entre l'informatique et array_diff () est que Array_Diff_ukey () est comparée par les clés du tableau. Il reçoit deux tableaux et renvoie un tableau d'éléments avec toutes les clés qui ne sont pas égaux, ce qui est particulièrement utile lors de la vérification des paramètres, en particulier lors de la vérification si certaines demandes d'API contiennent des paramètres inutiles.

Utilisation de base de Array_Diff_ukey ()

La syntaxe de base de la fonction array_diff_ukey () est la suivante:

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 et $ array2 : deux tableaux à comparer.

  • $ key_compare_func : une fonction de rappel qui compare les touches de deux tableaux.

Application dans la vérification des paramètres de l'API

Dans la vérification des paramètres de l'API, nous devons généralement vérifier si la demande envoyée par le client contient les paramètres que nous attendons et exclure les paramètres inutiles ou inutiles. Nous pouvons utiliser array_diff_ukey () pour accomplir cette tâche.

Supposons que nous ayons un tableau de paramètres pour les demandes d'API, et le client envoie une demande avec des paramètres supplémentaires, et nous devons en supprimer ces paramètres non pertinents et conserver uniquement les paramètres qui nous intéressent.

Exemple 1: Vérification des paramètres de base

Supposons que nous nous attendions à ce que la demande du client inclue les paramètres suivants:

 $requiredParams = ['name', 'age', 'email'];

Le tableau de paramètres de demande envoyé par le client est le suivant:

 $requestParams = [
    'name' => 'John',
    'age' => 30,
    'email' => 'john@example.com',
    'extra_param' => 'value',
];

Nous voulons supprimer Extra_param de $ requestParams , et nous pouvons utiliser array_diff_ukey () pour vérifier:

 // Définir une fonction de rappel,Comparez si la clé est dans $requiredParams milieu
$keyCompareFunc = function ($key1, $key2) use ($requiredParams) {
    return in_array($key1, $requiredParams) ? 0 : 1; // Seuls les paramètres requis sont conservés
};

// utiliser array_diff_ukey() Effectuer le filtrage
$filteredParams = array_diff_ukey($requestParams, array_flip($requiredParams), $keyCompareFunc);

print_r($filteredParams);

Le résultat de la sortie sera:

 Array
(
    [name] => John
    [age] => 30
    [email] => john@example.com
)

Comme indiqué ci-dessus, extra_param est supprimé avec succès du tableau des paramètres de demande.

Exemple 2: Vérification plus complexe

Parfois, nous devons non seulement exclure des paramètres supplémentaires, mais aussi des vérifications plus complexes, telles que la vérification si les valeurs de certains paramètres répondent au type attendu. Nous pouvons y parvenir en combinant array_diff_ukey () et autre logique de vérification.

Supposons que nous nous attendions à ce que l' âge du paramètre soit un entier et que l'e-mail est une adresse e-mail valide. Nous pouvons continuer ces types de vérification après avoir filtré les paramètres:

 // Définir une fonction de rappel,Effectuer une vérification de type
$keyCompareFunc = function ($key1, $key2) use ($requiredParams) {
    return in_array($key1, $requiredParams) ? 0 : 1; // Seuls les paramètres requis sont conservés
};

// Filtrez les paramètres inutiles
$filteredParams = array_diff_ukey($requestParams, array_flip($requiredParams), $keyCompareFunc);

// Vérification de type
if (isset($filteredParams['age']) && !is_int($filteredParams['age'])) {
    echo 'Age must be an integer';
}

if (isset($filteredParams['email']) && !filter_var($filteredParams['email'], FILTER_VALIDATE_EMAIL)) {
    echo 'Invalid email format';
}

print_r($filteredParams);

Dans cet exemple, nous filtrons d'abord les paramètres inutiles, puis de vérifier l'âge et le courrier électronique .

Conclusion

En utilisant rationnellement la fonction array_diff_ukey () , nous pouvons vérifier efficacement les paramètres de filtre de somme dans les demandes d'API. Il nous aide non seulement à éliminer les paramètres inutiles, mais joue également un rôle important dans la logique de vérification complexe. Pour les API qui nécessitent un contrôle strict des paramètres de demande, array_diff_ukey () est un outil très pratique.