Dans PHP, la fonction array_diff_ukey () est utilisée pour comparer les noms de clés d'un tableau via la fonction de rappel et renvoie les paires de valeurs de clé correspondant aux noms de clés qui apparaissent dans le premier tableau mais pas dans d'autres tableaux. Ceci est utile lorsque vous traitez des situations où une logique de comparaison de clés hautement personnalisée est requise.
Pendant le processus de débogage, il est très important de comprendre les résultats d'exécution de Array_Diff_ukey () , en particulier lorsque la logique de la fonction de rappel est relativement complexe. Cet article présentera plusieurs façons de visualiser et d'imprimer les résultats d'exécution de Array_Diff_ukey () pour vous aider à localiser les problèmes plus efficacement.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 est le tableau à comparer.
$ array2 est le tableau par rapport à lui.
$ key_compare_func est une fonction de rappel utilisée pour comparer les noms de clés.
Utilisons un exemple pour montrer comment déboguer cette fonction:
function keyCompare($key1, $key2) {
echo "Clé de comparaison:$key1 et $key2\n";
return strcmp($key1, $key2);
}
$array1 = [
"a" => "apple",
"b" => "banana",
"c" => "cherry"
];
$array2 = [
"a" => "avocado",
"d" => "durian"
];
$result = array_diff_ukey($array1, $array2, "keyCompare");
echo "Résultats de la différence:\n";
print_r($result);
Clé de comparaison:a et a
Clé de comparaison:b et a
Clé de comparaison:b et d
Clé de comparaison:c et a
Clé de comparaison:c et d
Résultats de la différence:
Array
(
[b] => banana
[c] => cherry
)
Lors du débogage du code PHP, print_r () et var_dump () sont les deux fonctions les plus couramment utilisées. La première sortie est plus simple, tandis que la seconde a des informations plus riches.
echo "<pre>";
print_r($result);
echo "</pre>";
En ajoutant Echo dans la fonction de rappel, vous pouvez voir clairement ce qui se passe avec chaque comparaison de clés. Ceci est très utile pour comprendre si la logique de comparaison répond aux attentes.
function keyCompareLog($key1, $key2) {
error_log("Comparer $key1 et $key2", 3, "/var/log/php_compare.log");
return strcmp($key1, $key2);
}
Écrivez des informations de débogage dans un fichier journal pour faciliter le suivi des problèmes sans affecter l'expérience utilisateur.
La valeur de retour de la fonction de rappel doit être un entier, et des nombres négatifs, 0, et des nombres positifs représentent moins que, égal à et supérieur à celle respectivement.
Les noms de clés sont sensibles à la casse et les fonctions de comparaison devraient le considérer.
Si la fonction de rappel erre, array_diff_ukey () ne fonctionnera pas comme prévu.
array_diff_ukey () est une fonction très puissante lorsqu'il s'agit de comparaisons de clés complexes. Afin de déboguer efficacement son comportement, les développeurs peuvent observer profondément le processus d'exécution en ajoutant des instructions d'impression à la fonction de rappel, en utilisant des enregistrements de journal et en combinant print_r () pour produire des résultats différentiels.
Grâce à un débogage raisonnable, vous pouvez facilement découvrir des problèmes pendant le processus de comparaison du nom de clé, garantissant ainsi la précision des résultats de sortie finale.