PHP 5.3与PHP 5.2 - 需要反思吗?

时间:2011-10-05 04:17:42

标签: php php-5.3 php-5.2

认为我需要使用反射来使这个5.3代码在5.2上工作但有问题。

我们所在的服务器只有PHP 5.2,目前每个托管公司都无法升级,但我们需要的类在5.2上有问题,因为该类使用5.3语法。

以下是我需要帮助的代码:

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

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

    return $class::$instance;
}

我已经看到了许多关于使用反射的问题的答案,但它们都是基本的例子,我不知道将它们转换成解决方案,但我已经尝试过了。这里的任何专家都可以提供帮助吗?

1 个答案:

答案 0 :(得分: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');
}