相关疑难解决方法(0)

PHP:按字符串值获取静态类的实例

我正在研究一个php web api,它带有很多需要重构的代码.编写代码的人希望将一个静态配置类包含到api资源中,然后获取该类的实例,如下所示:

<?php
$obj = "User";
$confObjectSuffix = "_conf";
$confObject = $obj.$confObjectSuffix;
if ($confObject::inst()->checkMethod($method)) {
.....
Run Code Online (Sandbox Code Playgroud)

这给出了错误"解析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM in .....",因为$ confObject是一个字符串而不是一个对象.

我写了一些测试代码:

<?php

$class = "User_conf";
echo "<pre>";
print_r($$class::Inst());
echo "</pre>";

class User_conf {
    private static $INSTANCE = null;

    public static function Inst() {
        if(User_conf::$INSTANCE === null) {
            User_conf::$INSTANCE = new User_conf();
        }

        return User_conf::$INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

但也无法让它与$$一起工作,还有其他方法吗?我不想重写超过必要的.

php oop static

4
推荐指数
1
解决办法
4890
查看次数

标签 统计

oop ×1

php ×1

static ×1