Comment récupérer des constantes de classe en PHP ?

Barbara Streisand
Libérer: 2024-11-17 09:51:03
original
112 Les gens l'ont consulté

How to Retrieve Class Constants in PHP?

Obtention de définitions de constantes à partir des classes PHP

Dans certains scénarios, il devient nécessaire de récupérer une liste de constantes définies au sein des classes PHP. Cela peut être particulièrement utile lorsqu'une introspection est requise pour la génération ou l'analyse de code dynamique. Malheureusement, la fonction get_defined_constants() ne fournit pas d'informations spécifiques aux classes individuelles.

Utilisation de Reflection pour la récupération constante

Pour remédier à cette limitation, Reflection peut être utilisé. L'objet ReflectionClass permet d'accéder aux métadonnées de la classe, y compris les constantes définies.

class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}

$refl = new ReflectionClass('Profile');
$constants = $refl->getConstants();
Copier après la connexion

La méthode getConstants() renvoie un tableau contenant toutes les constantes déclarées dans la classe.

Sortie :

Array
(
    'LABEL_FIRST_NAME' => 'First Name',
    'LABEL_LAST_NAME' => 'Last Name',
    'LABEL_COMPANY_NAME' => 'Company'
)
Copier après la connexion

Personnalisation du format de sortie

Si un format de sortie spécifique est souhaité, les métadonnées de la classe peuvent être traitées ultérieurement.

Récupération des noms de constantes :

$constantNames = array_keys($constants);
Copier après la connexion

Sortie :

Array
(
    'LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME'
)
Copier après la connexion

Récupération des noms de constantes entièrement qualifiés :

$fullyQualifiedConstantNames = array();
foreach ($constants as $name => $value) {
    $fullyQualifiedConstantNames[] = 'Profile::' . $name;
}
Copier après la connexion

Sortie :

Array
(
    'Profile::LABEL_FIRST_NAME',
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME'
)
Copier après la connexion

Récupération des noms et des valeurs de constantes :

$constantNamesWithValues = array();
foreach ($constants as $name => $value) {
    $constantNamesWithValues['Profile::' . $name] = $value;
}
Copier après la connexion

Sortie :

Array
(
    'Profile::LABEL_FIRST_NAME' => 'First Name',
    'Profile::LABEL_LAST_NAME' => 'Last Name',
    'Profile::LABEL_COMPANY_NAME' => 'Company'
)
Copier après la connexion

En tirant parti de Reflection, les programmeurs peuvent facilement obtenir et manipuler des informations sur les constantes définies dans les classes PHP, offrant ainsi une large gamme de flexibilité pour la génération de code, l'analyse et d'autres opérations.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal