Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann man in PHP über einen in Variablen gespeicherten Namen auf Klassenkonstanten zugreifen?

Wie kann man in PHP über einen in Variablen gespeicherten Namen auf Klassenkonstanten zugreifen?

DDD
Freigeben: 2024-11-04 02:41:30
Original
987 Leute haben es durchsucht

How can you access class constants in PHP using a variable-stored name?

Zugriff auf Klassenkonstanten mit in Variablen gespeicherten Namen

In der objektorientierten Programmierung bieten Klassenkonstanten eine praktische Möglichkeit, unveränderliche Werte innerhalb eines zu definieren Klasse. Der Zugriff auf diese Konstanten über eine Variable, die ihre Namen enthält, stellt jedoch eine Herausforderung dar.

Betrachten Sie das folgende Beispiel:

<code class="php">class A {
    const MY_CONST = "value";
}

$myVar = "MY_CONST";</code>
Nach dem Login kopieren

In diesem Szenario wird versucht, mit self auf den Wert von MY_CONST zuzugreifen: :$myVar funktioniert nicht, da es sich auf eine statische Eigenschaft und nicht auf eine Konstante bezieht.

Glücklicherweise gibt es zwei Methoden, um diese Einschränkung zu umgehen:

Konstantenfunktion:

Die Konstantenfunktion ermöglicht den Zugriff auf Konstanten, die sowohl über Definitions- als auch über Klassendeklarationen definiert sind. Es hat die Form konstant('::'), wobei :: den Namespace darstellt und constName den Namen der Konstante angibt.

<code class="php">$c = 'MY_CONST';
echo constant('::' . $c); // Output: value</code>
Nach dem Login kopieren

Reflection Class:

Using Mit der Reflection-API kann man über eine Reflection-Klasseninstanz auf Klassenkonstanten zugreifen.

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

Das obige ist der detaillierte Inhalt vonWie kann man in PHP über einen in Variablen gespeicherten Namen auf Klassenkonstanten 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage