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.
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