2011-04-13 11 views
0

$class이라는 변수에는 클래스 이름이 들어 있습니다."variable"클래스의 멤버에 액세스

어떻게 해당 클래스의 정적 멤버에 액세스 할 수 있습니까?

PHP 5.2에서 작동하는 접근 방식이 필요합니다. PHP 5.3


다음 작품 :

$class::$default_error_message; 

PHP 5.2에서는이 출력 : Btw는

unexpected T_PAAMAYIM_NEKUDOTAYIM 

, T_PAAMAYIM_NEKUDOTAYIM?! PHP는 나를 놀라게하지 않습니다. 또한

+1

: "PAAMAYI M NEKUDOTAYIM "은 분명히"이중 콜론 "에 대한 히브리어입니다. PHP는 파서 토큰'T_DOUBLE_COLON'을 별칭으로 정의하지만, 히브리어 버전은 잘 알려진 농담입니다. – AgentConundrum

답변

1
function getStaticMember($class, $member) { 
    if(is_object($class)) 
     $class = get_class($class); 
    $classObj = new ReflectionClass($class); 
    $result = null; 
    foreach($classObj->getStaticProperties() as $prop => $value) { 
     if($prop == $member) { 
      $result = $value; 
      break; 
     } 
    } 
    return $result; 
} 

:

In PHP, the scope resolution operator is also called Paamayim Nekudotayim (Hebrew: פעמיים נקודתיים‎), which means "twice colon" or "double colon" in Hebrew.

+0

예상대로 작동합니다! 감사! –

2

사용 참고 get_class_vars

$values = get_class_vars($class); 

echo $values["default_error_message"]; 

CodePad Demo

+0

그는 함수를 호출하지 않고 정적 변수를 읽으려고합니다. –

+0

매우 사실, 대답을 바 꾸었습니다. –

+0

'$ default_error_message'는''default_error_message ''가되어야한다고 생각합니다. 그 다음에는 위대한 접근 방식입니다. 아주 우아한. –

관련 문제