Maison  >  Article  >  développement back-end  >  Avertissement PHP : implode() : arguments non valides, solution transmise

Avertissement PHP : implode() : arguments non valides, solution transmise

PHPz
PHPzoriginal
2023-06-23 09:04:362003parcourir

Dans la programmation PHP, des messages d'avertissement apparaissent souvent. L'une des invites les plus courantes est "Avertissement PHP : implode() : arguments non valides transmis". Cet article présentera les solutions à cet avertissement.

Tout d’abord, nous devons comprendre comment utiliser la fonction implode(). La fonction de cette fonction est de diviser un tableau en une chaîne, en utilisant la syntaxe suivante :

string implode ( string $glue , array $pieces )

où $glue représente la chaîne de connexion et $pieces représente le tableau à connecter . Si les paramètres transmis sont incorrects, l'invite « Avertissement PHP : implode() : arguments non valides transmis » apparaîtra.

Ensuite, examinons la solution à cet avertissement.

1. Vérifiez si le type du paramètre entrant est correct

Tout d'abord, nous devons vérifier si le type du paramètre entrant est correct. La fonction implode() nécessite que $glue soit de type chaîne et que $pieces soit de type tableau. Si le type de paramètre transmis est incorrect, l'invite « Avertissement PHP : implode() : arguments non valides transmis » apparaîtra.

Par exemple, si le paramètre $glue que nous transmettons est de type numérique, cet avertissement apparaîtra. Par conséquent, il est recommandé d'utiliser le code suivant pour vérifier si le type de paramètre est correct :

if (!is_array($pieces) || !is_string($glue)) {

throw new Exception('implode() 参数类型错误');

}

2. le tableau contient des variables non définies

La deuxième solution consiste à vérifier si le tableau contient des variables non définies. Si le tableau contient des variables non définies, la fonction implode() affichera l'invite « Avertissement PHP : implode() : arguments non valides passés ».

Par exemple, cet avertissement apparaîtra dans le code suivant :

$name = 'Tom';
$arr = array('Hello', $name, 'World');

// La variable $unknown n'est pas définie
$arr [] = $unknown;

echo implode(' ', $arr);

Par conséquent, il est recommandé d'utiliser la fonction isset() pour vérifier si la variable a été définie :

if (!isset ($unknown)) {

$unknown = '';

}
$arr[] = $unknown;

3. Traitement des tableaux multidimensionnels

Si le paramètre $pieces entrant est un tableau multidimensionnel, alors la fonction implode() le fera. apparaissent également des conseils "Avertissement PHP : implode() : arguments invalides transmis".

Par exemple, le code suivant provoquera cet avertissement :

$arr = array(

array('Hello', 'World'),
array('How', 'Are', 'You')

);

echo implode(' ', $arr);

Par conséquent, il est recommandé d'utiliser le code suivant pour résolvez-le :

$arr = array(

array('Hello', 'World'),
array('How', 'Are', 'You')

);

$flat = array();
array_walk_recursive($arr, function ($a) use (&$flat) { $flat[] = $a; });

echo implode (' ', $flat);

En utilisant la fonction array_walk_recursive() pour traiter des tableaux multidimensionnels, nous pouvons éviter l'invite "Avertissement PHP : implode() : arguments non valides passés".

En résumé, voici plusieurs façons de gérer "Avertissement PHP : implode() : arguments non valides transmis". J'espère que cet article pourra vous aider à résoudre le problème en douceur.

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!

Déclaration:
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