変数に格納された名前を使用したクラス定数へのアクセス
オブジェクト指向プログラミングでは、クラス定数は、オブジェクト内で不変の値を定義する便利な方法を提供します。クラス。ただし、名前を含む変数を使用してこれらの定数にアクセスすることには課題が生じます。
次の例を考えてみましょう:
<code class="php">class A { const MY_CONST = "value"; } $myVar = "MY_CONST";</code>
このシナリオでは、self を使用して MY_CONST の値にアクセスしようとしています。 :$myVar は、定数ではなく静的プロパティを参照するため機能しません。
幸いなことに、この制限を回避するには 2 つの方法があります:
定数関数:
定数関数を使用すると、define 宣言と class 宣言の両方で定義された定数にアクセスできます。これは constant('::') の形式をとります。ここで、:: は名前空間を表し、constName は定数の名前を指定します。
<code class="php">$c = 'MY_CONST'; echo constant('::' . $c); // Output: value</code>
リフレクション クラス:
使用Reflection API を使用すると、リフレクション クラス インスタンスを通じてクラス定数にアクセスできます。
<code class="php">$ref = new ReflectionClass('A'); $constName = 'MY_CONST'; echo $ref->getConstant($constName); // Output: value</code>
以上が変数に格納された名前を使用して PHP のクラス定数にアクセスするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。