2011-10-05 2 views
1

리플렉션을 사용하여이 5.3 코드가 5.2에서 작동하지만 문제가 발생해야한다고 생각합니다.PHP 5.3 대 PHP 5.2 - 리플렉션이 필요합니까?

우리는 PHP 5.2 만 지원하는 서버에 있지만 현재 호스팅 업체 당 업그레이드는 가능하지 않지만 클래스에는 5.3 구문을 사용하기 때문에 5.2에서 문제가 발생합니다. 나는 변환하기에 충분 모른다, 나는 반사를 사용주의 질문에 대한 답변의 숫자를 보았다

static public function instance($class) { 
    if (!isset($class::$instance)) { 
     $class::$instance = new $class(); 
     $class::$instance->initialize(); 

     MobileHelper::registerDevice($class::$instance); 
    } 

    return $class::$instance; 
} 

,하지만 그들은 모든 기본 예제입니다 : 여기

내가 도움이 필요 코드입니다 그것들을 여기에있는 해결책에 넣으려고했지만 나는 시도했다. 이 문제를 해결할 수있는 전문가가 있습니까?

답변

0

여기에서는 Reflection을 사용하여 동일합니다.

static public function instance($class) { 
    $ref = new ReflectionClass($class); 
    if (!$ref->getStaticPropertyValue('instance')){ 
     $ref->setStaticPropertyValue('instance', new $class()); 
     $obj = $ref->getStaticPropertyValue('instance'); 
     $obj->initialize(); 
     MobileHelper::registerDevice($obj); 
    } 
    return $ref->getStaticPropertyValue('instance'); 
}