Solution à l'avertissement PHP : argument non valide fourni pour array_filter()

WBOY
Libérer: 2023-06-22 09:34:02
original
1489 Les gens l'ont consulté

PHP est un langage de script largement utilisé qui fournit un support puissant pour le développement de sites Web. Cependant, vous pouvez rencontrer des difficultés lorsque des erreurs surviennent lors de l'utilisation de PHP. L'une des erreurs courantes est l'erreur « Avertissement PHP : argument non valide fourni pour array_filter() ».

Cette erreur se produit généralement lors de l'utilisation de la fonction array_filter() en PHP. Cette fonction est utilisée pour filtrer les éléments du tableau et renvoyer un nouveau tableau d'éléments répondant aux critères. Cependant, si vous utilisez cette fonction avec des arguments qui ne répondent pas à certaines exigences, une erreur se produira.

Ci-dessous, nous aborderons trois solutions possibles pour résoudre ce problème.

Solution 1 : Vérifiez le tableau à l'aide de la fonction array_filter()

Tout d'abord, vous devez vérifier le tableau à l'aide de la fonction array_filter(). Si le tableau n’est pas un vrai tableau, alors cette fonction échouera. Assurez-vous que le tableau est bien un tableau et non un objet ou un autre type de variable. Pour vérifier si le tableau est correct, vous pouvez utiliser la fonction var_dump() pour afficher le tableau.

Par exemple :

$arr = "this is a string";
var_dump($arr);
Copier après la connexion

Le code ci-dessus affichera :

string(16) "this is a string"
Copier après la connexion

Cela indique que la variable $arr n'est pas un tableau, mais une chaîne . Si vous souhaitez filtrer un tableau à l'aide de la fonction array_filter(), vous devez vous assurer que la variable $arr est un tableau.

Solution 2 : Vérifiez la fonction de rappel à l'aide de la fonction array_filter()

Le deuxième facteur à vérifier est la fonction de rappel. La fonction array_filter() a une fonction de rappel en paramètre. Cette fonction de rappel est utilisée pour tester chaque élément du tableau afin de déterminer s'il doit être conservé. Si la fonction de rappel renvoie TRUE, l'élément reste dans le nouveau tableau. Si la fonction de rappel renvoie FALSE, l'élément sera filtré.

La fonction de rappel doit être définie de la manière suivante :

function functionName($value) {
  // your code here
  return $value;
}
Copier après la connexion

Le nom de la fonction peut être personnalisé, mais elle doit prendre $value comme paramètre et renvoyer une valeur. Si la fonction de rappel ne répond pas à ces exigences, une erreur « Avertissement PHP : argument non valide fourni pour array_filter() » se produira.

Solution trois : utilisez la fonction isset() pour vérifier les variables utilisées dans la fonction de rappel

La troisième chose à vérifier est si les variables utilisées dans la fonction de rappel sont définies . Si la fonction de rappel tente d'utiliser une variable non définie, une erreur "Avertissement PHP : argument non valide fourni pour array_filter()" se produira. Assurez-vous que les variables sont toujours définies et définies sur des valeurs spécifiques dans la fonction de rappel.

Par exemple :

$num = 5;
$array = array(1,2,3,4,5);

// This callback function generates an error
function odd($var)
{
  return ($var % $num == 1);
}

// This callback function works properly
function odd_fixed($var)
{
  global $num;
  return ($var % $num == 1);
}

$result = array_filter($array, "odd");
$result_fixed = array_filter($array, "odd_fixed");
Copier après la connexion

Dans le code ci-dessus, la fonction de rappel odd() génère une erreur "Avertissement PHP : argument non valide fourni pour array_filter()" car elle tente de utilisez la variable $num non définie. Au lieu de cela, la fonction de rappel odd_fixed() utilise le mot-clé global pour définir la variable $num et garantit que sa valeur est toujours définie. Par conséquent, la fonction odd_fixed() fonctionne sans erreur.

Résumé

Lors de l'utilisation de la fonction array_filter() de PHP, vous pouvez rencontrer l'erreur « Avertissement PHP : argument non valide fourni pour array_filter() ». Cette erreur peut être provoquée par l'utilisation d'un tableau incorrect, d'une fonction de rappel incorrecte ou d'une variable non définie utilisée dans la fonction de rappel. Ce problème peut être facilement résolu en vérifiant ces paramètres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal