Wie rufe ich Klassenkonstanten in PHP ab?

Barbara Streisand
Freigeben: 2024-11-17 09:51:03
Original
111 Leute haben es durchsucht

How to Retrieve Class Constants in PHP?

Erhalten von Konstantendefinitionen aus PHP-Klassen

In bestimmten Szenarien ist es notwendig, eine Liste von Konstanten abzurufen, die in PHP-Klassen definiert sind. Dies kann besonders nützlich sein, wenn Selbstbeobachtung für die dynamische Codegenerierung oder -analyse erforderlich ist. Die Funktion get_defined_constants() stellt leider keine spezifischen Informationen für einzelne Klassen bereit.

Reflection zum Abrufen von Konstanten verwenden

Um diese Einschränkung zu beheben, kann Reflection eingesetzt werden. Das ReflectionClass-Objekt bietet Zugriff auf Klassenmetadaten, einschließlich der definierten Konstanten.

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();
Nach dem Login kopieren

Die Methode getConstants() gibt ein Array zurück, das alle in der Klasse deklarierten Konstanten enthält.

Ausgabe :

Array
(
    'LABEL_FIRST_NAME' => 'First Name',
    'LABEL_LAST_NAME' => 'Last Name',
    'LABEL_COMPANY_NAME' => 'Company'
)
Nach dem Login kopieren

Ausgabeformat anpassen

Wenn ein bestimmtes Ausgabeformat gewünscht wird, können die Klassenmetadaten weiterverarbeitet werden.

Konstantennamen abrufen:

$constantNames = array_keys($constants);
Nach dem Login kopieren

Ausgabe:

Array
(
    'LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME'
)
Nach dem Login kopieren

Vollständig qualifizierte Konstantennamen abrufen:

$fullyQualifiedConstantNames = array();
foreach ($constants as $name => $value) {
    $fullyQualifiedConstantNames[] = 'Profile::' . $name;
}
Nach dem Login kopieren

Ausgabe:

Array
(
    'Profile::LABEL_FIRST_NAME',
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME'
)
Nach dem Login kopieren

Konstantennamen und -werte abrufen:

$constantNamesWithValues = array();
foreach ($constants as $name => $value) {
    $constantNamesWithValues['Profile::' . $name] = $value;
}
Nach dem Login kopieren

Ausgabe:

Array
(
    'Profile::LABEL_FIRST_NAME' => 'First Name',
    'Profile::LABEL_LAST_NAME' => 'Last Name',
    'Profile::LABEL_COMPANY_NAME' => 'Company'
)
Nach dem Login kopieren

Durch die Nutzung von Reflection können Programmierer bequem Informationen über in PHP-Klassen definierte Konstanten abrufen und bearbeiten, was eine große Flexibilität bei der Codegenerierung, Analyse und anderen Vorgängen ermöglicht.

Das obige ist der detaillierte Inhalt vonWie rufe ich Klassenkonstanten in PHP ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage