クラス定数への動的アクセス
PHP では、可変変数を使用してクラス定数に動的にアクセスするのは困難な場合があります。ただし、これを実現するには 2 つの効果的な方法があります。
定数関数の使用
constant() 関数は、定数名を表す文字列引数を受け取り、それを評価します。
<br>self:: <br>{</p> <pre class="brush:php;toolbar:false">const MY_CONST = 'myval'; static function test() { $c = 'MY_CONST'; return constant('self::'. $c); }
}
echo A::test(); // 出力: myval
この例では、constant() 関数は文字列 "self::MY_CONST" を評価し、MY_CONST 定数の値を返します。
リフレクションの使用
リフレクションを使用すると、クラス、メソッド、定数に関する情報に動的にアクセスできます。
<br>$ref = new ReflectionClass( 'A');<br>$constName = 'MY_CONST';<br>echo $ref->getConstant($constName); // 出力: myval<br>
ここでは、A クラスの ReflectionClass オブジェクトが作成されます。 getConstant() メソッドは、MY_CONST 定数の値を返します。
以上がPHP でクラス定数に動的にアクセスするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。