认为我需要使用反射来使这个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;
}
我已经看到了许多关于使用反射的问题的答案,但它们都是基本的例子,我不知道将它们转换成解决方案,但我已经尝试过了。这里的任何专家都可以提供帮助吗?
答案 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');
}