Pergunta

ConfigReader classe { private $ instance estática = NULL; protegido $ configdata = matriz ();

    public function getInstance()
    {
        if( self::$instance == NULL )
        {
            self::$instance == new ConfigReader();
        }
        return self::$instance;
    }

    public function getConfigValue( $getName )
    {
        echo 'In function';
    }

    private function __construct()
    {
        $this->configData = %READ_FROM_DATABASE%;
    }

    private function __clone() {}
}

E para:

var_dump( ConfigReader::getInstance() )

Eu tenho: NULL

Eu quebrei por cérebros ... Ajuda-me, por favor.

Foi útil?

Solução

No getInstance método, você deve usar apenas um '=': você quer fazer um encontro, e não uma compatison:

self::$instance = new ConfigReader();

Em vez de

self::$instance == new ConfigReader();


E que o método deve ser declarado como static, como você está usando-o como um método estático:

public static function getInstance()
{
    if( self::$instance == NULL )
    {
        self::$instance = new ConfigReader();
    }
    return self::$instance;
}

Weth estas duas modificações, ele deve funcionar; -)

Outras dicas

Apenas um erro de digitação: self::$instance == new ConfigReader() contém == em vez de =

O getInstance () método também deve ser estático.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top