2017-01-03 9 views
0

定数が定義されているかどうかを確認できる小さなPHP関数を作成しようとしています。constantが関数内で定義されているかどうかをチェックする方法

今のところ、定数は関数内の変数に転送されているため、if(defined()の部分は機能しません。

function getConstant($constant) { 
    if(defined($constant)) { 
    echo constant($constant); 
    } else { 
    echo ''; 
    } 
} 

echo constant($constant)一部が正常に動作しているが、それは今の変数であるため、定数が実際に定義されている場合、私は確認することができません。

私はあなたが一定の変数に転送され、何を意味するのですか?それ

+1

のための解決策を見つけるように見えることはできませんかあなたは定数の名前を意味しますか? – yivi

+1

すべて正常に動作しますhttps://3v4l.org/a8Rgh –

+1

'$ constant'は定数の名前を持つ__string__でなければなりません。 –

答えて

3
public static function isConstants($constant) { 
    $oClass = new ReflectionClass(__CLASS__); 
    $allConstants = $oClass->getConstants(); 
    if (isset($allConstants[$constant])) { 
     echo $allConstants[$constant]; 
    } else { 
     echo ''; 
    } 
} 
関連する問題