Dans la programmation PHP, la fonction Array_Fill_keys est une fonction très courante et utile qui est utilisée pour remplir un tableau avec une clé et une valeur données. Son utilisation de base est d'utiliser les clés d'un tableau comme base, puis de remplir la valeur spécifiée. Habituellement, l'utilisation de cette fonction est simple, mais dans certains cas particuliers, que se passe-t-il si un paramètre de type non-réseau est passé? Cela entraînera-t-il des erreurs? Dans cet article, nous explorerons ce problème en profondeur.
La syntaxe de la fonction array_fill_keys est la suivante:
array_fill_keys(array $keys, mixed $value): array
$ clés : un tableau contenant les clés à remplir.
$ Value : la valeur à remplir.
La fonction consiste à générer un nouveau tableau basé sur les touches dans le tableau des touches $ et à définir la valeur correspondant à toutes les clés sur $ la valeur .
Par exemple:
$keys = ['a', 'b', 'c'];
$value = 10;
$new_array = array_fill_keys($keys, $value);
print_r($new_array);
La sortie sera:
Array
(
[a] => 10
[b] => 10
[c] => 10
)
Discutons maintenant d'une question importante - que se passe-t-il si le paramètre $ Keys entrant n'est pas un tableau lors de l'appel Array_Fill_keys ?
Selon la documentation PHP, le premier paramètre attendu par array_fill_keys est un tableau. Si un type non de réseau est passé (tel qu'une chaîne, un entier ou un autre type), PHP lancera une erreur d'avertissement que le type de paramètre est incorrect et n'effectuera pas une opération de rembourrage.
$value = 10;
$non_array = "this is a string";
$new_array = array_fill_keys($non_array, $value);
La sortie sera:
Warning: array_fill_keys() expects parameter 1 to be array, string given in /path/to/your/script.php on line 4
Dans cet exemple, la variable $ non_array est une chaîne qui est transmise à array_fill_keys et lancera un avertissement car la fonction attend un tableau comme argument.
PHP émettra une erreur d'avertissement lors de l'exécution, mais le script n'arrêtera pas d'exécuter. Les informations spécifiques pour l'erreur sont:
Warning: array_fill_keys() expects parameter 1 to be array, string given in /path/to/your/script.php on line 4
Cela indique que la fonction Array_Fill_keys ne peut pas gérer les types de non-réseau entrants. L'erreur elle-même ne met pas fin à l'exécution du programme, mais le comportement du programme devient imprévisible.
Pour éviter de telles erreurs, nous pouvons utiliser la fonction is_array pour vérifier si les paramètres passés sont des baies avant d'appeler Array_Fill_keys . S'il ne s'agit pas d'un tableau, des opérations de gestion des erreurs ou de conversion appropriées peuvent être effectuées.
Par exemple:
$value = 10;
$non_array = "this is a string";
if (is_array($non_array)) {
$new_array = array_fill_keys($non_array, $value);
} else {
echo "Error: The provided argument is not an array.";
}
Cela évite les avertissements en raison du passage dans des types de non-réseau et fournit une invite d'erreur plus conviviale.
Lorsque vous utilisez la fonction Array_Fill_Keys , si un paramètre de type non de réseau est passé, PHP jette un avertissement que le type de paramètre est incorrect. Pour éviter cela, nous pouvons vérifier le type de paramètre avant d'appeler la fonction et de le gérer de manière appropriée. Cela améliore la robustesse et la maintenabilité du code.
Partie avant et arrière