繁体   English   中英

对静态类成员的错误访问

[英]Incorrect access to static class member

我有以下代码

class DataMapperFactoryBeta
{
    static private $configClassName = 'ConfigBeta';
    static private $client;
    static private $mapper = [];


    static public function initClient()
    {
        $className = 'Models\\DataMappers\\Clients\\'.self::$configClassName::$db_type;
    }
}

解释器向我抛出一个致命错误:“对静态类成员的不正确访问”。 我希望动态访问配置类名称,因为将来我会更改它,并且我不想通过$ configClassName在代码的很多地方仅一次更改它。 使用静力学甚至可能吗?

将您的行分成两部分,它应该可以为您工作:

$className = 'Models\\DataMappers\\Clients\\' . self::$configClassName;
$className = $className::$db_type;

附带说明一下,我在PHP文档中找不到范围解析运算符( ::是左还是右关联。 可能是它试图按以下方式解释该行:

('Models\\DataMappers\\Clients\\'.self::($configClassName::$db_type));

没有文档的更新,代码在编写方式上究竟应该发生什么是模棱两可的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM