Puis-je obtenir CONST définie sur une classe PHP?

J'ai plusieurs CONST définie sur certaines classes, et que vous souhaitez obtenir une liste d'entre eux. Par exemple:

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

Est-il possible d'obtenir une liste de la CONST définie sur le Profile classe? Aussi loin que je peux dire, l'option la plus proche(get_defined_constants()) ne suffit pas.

Ce que j'ai réellement besoin est une liste des noms de constantes - quelque chose comme cela:

array('LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME')

Ou:

array('Profile::LABEL_FIRST_NAME', 
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME')

Ou encore:

array('Profile::LABEL_FIRST_NAME'=>'First Name', 
    'Profile::LABEL_LAST_NAME'=>'Last Name',
    'Profile::LABEL_COMPANY_NAME'=>'Company')
Vous pouvez le faire à l'aide de réflexion. Recherche pour "Imprimer des constantes de classe" sur la page pour en voir un exemple.
L'aide de la Réflexion, et un ReflectionClass sur la Cl, vous pouvez utiliser la fonction getConstants nz.php.net/manual/en/class.reflectionclass.php
Réflexion sera votre sauveur.

OriginalL'auteur Brock Boland | 2009-06-05