Dans le développement réel, en particulier lorsque vous traitez avec une configuration utilisateur ou des paramètres de formulaire multiple, nous devons souvent créer un tableau de configuration avec une structure unifiée et un contenu similaire. Afin d'éviter l'écriture répétée du code avec la même structure, la fonction Array_Fill () de PHP devient un outil très pratique.
Cet article présentera comment créer un modèle de tableau de configuration avec une structure par défaut à l'aide d'Array_Fill () et de le démontrer via un vrai cas.
Array_Fill () est une fonction intégrée en PHP qui remplit un tableau avec des valeurs spécifiées.
Prototype de fonction:
array_fill(int $start_index, int $count, mixed $value): array
$ start_index : l'indice de départ du tableau.
Nombre $ : le nombre d'éléments à insérer.
$ Value : la valeur par défaut pour chaque élément.
Supposons que nous développons un système de gestion de l'autorisation utilisateur et que nous devons générer un tableau de configuration d'autorisation pour chaque rôle utilisateur, chaque élément de configuration contient la structure par défaut suivante:
[
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
]
Si nous devons initialiser une telle configuration pour 5 rôles différents, l'utilisation de Array_Fill () sera très efficace.
<?php
// Définissez la structure par défaut
$defaultPermission = [
'read' => false,
'write' => false,
'delete' => false,
'manage' => false,
'callback_url' => 'https://m66.net/api/callback'
];
// créer 5 Tableau de configuration de rôle
$roles = array_fill(0, 5, $defaultPermission);
// Facultatif:Attribuer un nom à chaque rôle(Par exemple admin、editor attendez)
$roleNames = ['admin', 'editor', 'author', 'subscriber', 'guest'];
$config = array_combine($roleNames, $roles);
// Imprimez les résultats pour vérifier
print_r($config);
Array
(
[admin] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
[editor] => Array
(
[read] =>
[write] =>
[delete] =>
[manage] =>
[callback_url] => https://m66.net/api/callback
)
...
)
Problème de citation : le même objet de référence est rempli de Array_Fill () (particulièrement important pour les tableaux). Si vous modifiez la configuration de l'un des rôles à l'avenir, les autres rôles seront également affectés.
Pour éviter ce problème, vous pouvez utiliser array_map () avec une fonction anonyme:
$roles = array_map(function () use ($defaultPermission) {
return $defaultPermission;
}, range(1, 5));
Cohérence structurelle : cette méthode convient aux scénarios d'initialisation où la cohérence structurelle n'est pas encore déterminée.