2011-10-05 70 views
1

认为我需要使用反射使5.3代码在5.2上工作,但有问题。PHP 5.3 vs 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

在这里,使用反射相同。

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