Pendant le développement de PHP, nous définissons souvent de nombreuses constantes pour maintenir la lisibilité et la maintenabilité du code. Par exemple, la configuration au niveau du système, le code d'erreur, l'identification de l'autorisation, etc. À mesure que la taille du projet augmente, le nombre de constantes augmente progressivement et nous devons parfois filtrer une certaine classe de constantes dans un but spécifique de toutes les constantes définies. À l'heure actuelle, les deux fonctions get_defined_constants () et array_filter () sont utiles.
get_defined_constants () est une fonction intégrée qui obtient toutes les constantes définies dans le script actuel. Cette fonction renvoie un tableau associatif multidimensionnel, qui est regroupé par défaut par la catégorie à laquelle appartient la constante (comme le noyau , l'utilisateur , la date , etc.).
Exemple d'utilisation:
print_r(get_defined_constants());
Sortie (pièce):
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
)
[user] => Array
(
[MY_APP_ENV] => 'production'
)
)
Si le paramètre vrai est passé, une constante groupée par classification est renvoyée; S'il est faux ou omis, un tableau associatif aplati est retourné.
Array_Filter () est un autre outil puissant pour appliquer une fonction de rappel à chaque élément dans un tableau et filtrer les éléments qui répondent aux critères. L'élément qui renvoie vrai dans la fonction de rappel sera conservé.
L'utilisation de base est la suivante:
$filtered = array_filter($array, function($value) {
return $value > 10;
});
Supposons que nous définissons certaines constantes en commençant par app_ dans le code pour identifier la configuration de l'application:
define('APP_NAME', 'MyApp');
define('APP_ENV', 'production');
define('APP_DEBUG', true);
define('VERSION', '1.0.0');
Nous voulons filtrer toutes les constantes en commençant par app_ . Vous pouvez combiner get_defined_constants () et array_filter () à implémenter comme suit:
$allConstants = get_defined_constants(true);
$userConstants = $allConstants['user'] ?? [];
$appConstants = array_filter($userConstants, function($key) {
return strpos($key, 'APP_') === 0;
}, ARRAY_FILTER_USE_KEY);
print_r($appConstants);
Résultat de sortie:
Array
(
[APP_NAME] => MyApp
[APP_ENV] => production
[APP_DEBUG] => 1
)
De cette façon, nous extrassons avec précision toutes les constantes personnalisées en commençant par App_ pour un traitement ultérieur pratique, tels que l'exportation de configuration, le débogage et l'impression, etc.
Nous pouvons également convertir les constantes filtrées en JSON et les soumettre à une interface distante (comme un système de journal ou un centre de configuration). Par exemple, envoyez à https://m66.net/api/report_constants :
Étiquettes associées:
array_filter