Position actuelle: Accueil> Derniers articles> Utilisez var_dump () en conjonction avec array_diff () pour mieux comprendre les résultats

Utilisez var_dump () en conjonction avec array_diff () pour mieux comprendre les résultats

M66 2025-06-06

Dans le développement quotidien de PHP, nous rencontrons souvent des situations où les résultats renvoyés par la fonction de traitement de tableau ne correspondent pas aux attentes. À l'heure actuelle, si vous pouvez combiner intelligemment les deux fonctions de var_dump () et array_diff () , vous pouvez comprendre les changements de données avant et après l'exécution de la fonction, positionnant ainsi le problème plus rapidement.

Cet article utilisera un exemple pour montrer comment utiliser ces deux fonctions pour analyser l'effet d'exécution des fonctions PHP.

Examen des connaissances de base

  • var_dump () : utilisé pour produire des informations détaillées d'une variable, y compris les types et les valeurs, qui sont très adaptés au débogage.

  • array_diff () : renvoie un tableau contenant des valeurs qui apparaissent dans le premier tableau mais pas dans d'autres tableaux.

Exemple de scène

Supposons que nous obtenons un ensemble de données utilisateur de l'interface et espérons nettoyer les utilisateurs non valides. Nous avons écrit une fonction filterInvalidusers () , mais le résultat ne semble pas juste. À l'heure actuelle, nous pouvons utiliser var_dump () et array_diff () pour analyser le problème.

 <?php

function filterInvalidUsers($users) {
    return array_filter($users, function($user) {
        return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
    });
}

// Données brutes
$originalUsers = [
    ['id' => 1, 'email' => 'user1@m66.net'],
    ['id' => 2, 'email' => 'invalid-email'],
    ['id' => 3], // Manque email
    ['id' => 4, 'email' => 'user4@m66.net'],
];

// Exécuter les fonctions
$filteredUsers = filterInvalidUsers($originalUsers);

// utiliser var_dump() Résultat de sortie
echo "Liste des utilisateurs filtrés:\n";
var_dump($filteredUsers);

// utiliser array_diff() Voir quels utilisateurs sont filtrés
$diff = array_udiff($originalUsers, $filteredUsers, function($a, $b) {
    return $a['id'] <=> $b['id'];
});

echo "\nLes utilisateurs filtrés ont:\n";
var_dump($diff);

Analyse de sortie

Via var_dump () , nous pouvons voir que dans le tableau utilisateur filtré, seuls les utilisateurs avec format de boîte aux lettres légitimes sont laissés. array_udiff () (apporter la fonction de rappel est utilisé pour comparer les éléments de la table) peut nous dire quels utilisateurs sont supprimés du tableau d'origine, afin que les développeurs puissent confirmer si le comportement de la fonction répond aux attentes.

Conseils

  1. Si vous ne vous souciez que des modifications du contenu du tableau, vous ne pouvez comparer que les valeurs clés au lieu de toute la structure.

  2. Les fonctions de la série Array_Diff () sont comparées par les chaînes par défaut. S'il s'agit d'une structure complexe, il est recommandé d'utiliser array_udiff () et de passer dans une fonction de comparaison personnalisée.

  3. L'ajout d'un texte invite lors de l'utilisation de var_dump () peut rendre les informations de débogage plus claires.

Conclusion

Le débogage est une partie indispensable du processus de programmation, et var_dump () et array_diff () sont deux "microscopes" très puissants. En combinant raisonnablement ces deux outils, vous pouvez avoir une compréhension plus approfondie de la logique de traitement des fonctions, en particulier lorsque vous traitez des tableaux complexes, vous aidant à découvrir et à résoudre les problèmes plus rapidement. J'espère que cet article vous sera utile lors du débogage des programmes PHP!