Heim > Backend-Entwicklung > PHP-Tutorial > Kann ich mithilfe einer Variablen dynamisch auf Klassenkonstantenwerte zugreifen?

Kann ich mithilfe einer Variablen dynamisch auf Klassenkonstantenwerte zugreifen?

Barbara Streisand
Freigeben: 2024-11-04 03:17:02
Original
944 Leute haben es durchsucht

Can I Access Class Constant Values Dynamically Using a Variable?

Klassenkonstantenwerte dynamisch abrufen

Frage:

Ist es möglich, dynamisch auf den Wert einer Klassenkonstante zuzugreifen? eine Variable, die den Namen der Konstante enthält?

Antwort:

Ja, es gibt zwei Methoden, dies zu erreichen: Verwendung der Konstantenfunktion oder Reflexion.

Methode 1: Konstantenfunktion

Die Konstantenfunktion kann verwendet werden, um den Wert beider benutzerdefinierten Konstanten abzurufen, die mit Definitions- und Klassenkonstanten deklariert wurden:

<code class="php">class A
{
    const MY_CONST = 'myval';

    static function test()
    {
        $c = 'MY_CONST';
        return constant('self::'. $c);
    }
}

echo A::test(); // outputs "myval"</code>
Nach dem Login kopieren

Methode 2: Reflexionskurs

Ein umfassenderer Ansatz ist die Verwendung von Reflexion:

<code class="php">$ref = new ReflectionClass('A');
$constName = 'MY_CONST';
echo $ref->getConstant($constName); // outputs "myval"</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann ich mithilfe einer Variablen dynamisch auf Klassenkonstantenwerte zugreifen?. 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