2017-05-08 13 views
1

リフレクションクラスを使用せずにクラス内で定義された定数を取得することは可能ですか?リフレクションを使用せずにPHPクラス内の定数を取得する方法

<?php 

class Test { 
    const URL = 'https://www.example.com'; 

    public function get($constant) 
    { 
     return $constant; 
    } 
} 

$test = new Test(); 

$test->get('URL'); 

私は出力が「https://www.example.com」ですURLの値、になりたい:

は、私はこのような何かをしたいです。しかし、今は実際の単語「URL」を返します。

+0

[PHP Docs](http://www.php.net/manual)に示されているように、単純に 'Test :: URL'と同じくらい簡単です。 /en/language.oop5.constants.php) –

答えて

0

別の方法:もちろん

class Test { 
    const URL = 'https://www.example.com'; 

    public function get($constant) 
    { 
      return constant('Test::'.$constant); 
    } 
} 

$test = new Test(); 

echo $test->get('URL'); 
+0

ありがとうございました。これはまさに私が探しているものです。ちなみに、 '' Test :: '。$ constant'を '' self ::'に変更できますか?$ constant'? – SSD

0

それは、あなたは、単に戻ってユーザーに入力を戻ってきているん。その名前で定数にアクセスする場合は、次のようにします。

<?php 
class Test { 
    const URL = 'https://www.example.com'; 
} 

echo Test::URL; 
+0

私はこのコードをMVCプロジェクトに書いているので、 '$ this-> load-> model( 'test)のようなことをしたいと思います。 $ this-> test-> get( 'URL'); '。どのように私はそれを適用するのですか? – SSD

+0

次に@mehulmptsの答えを見て、彼のアプローチはおそらくあなたが探しているものです。 –

関連する問題