2017-01-03 8 views
0

상수가 정의되어 있는지 확인할 수있는 작은 PHP 함수를 만들려고합니다. 그렇다면 에코를 표시하고 그렇지 않으면 에코 공간 또는 아무 것도 표시하지 않습니다.상수가 함수 내부에 정의되어 있는지 확인하는 방법

지금은 if(defined() 부분이 작동하지 않습니다. 왜냐하면 상수가 함수 내부의 변수로 전송되기 때문입니다.

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

echo constant($constant) 부분은 잘 작동하지만, 지금은 변수이기 때문에 일정이 실제로 정의되어있는 경우 I는 확인할 수 없습니다.

난에 대한 해결책을 찾을 수가 없습니다 그것은 당신이 상수를 변수로 전송 무슨 뜻 이죠

+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 ''; 
    } 
}