class ConfigReader {private static $ instance = NULL; protected $ configData = array();
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() {}
}
Run Code Online (Sandbox Code Playgroud)
并为:
var_dump( ConfigReader::getInstance() )
Run Code Online (Sandbox Code Playgroud)
我得到了:NULL
我被大脑打破了......请帮帮我.
在getInstance方法中,你应该只使用一个'=':你想要进行赋值,而不是compatison:
self::$instance = new ConfigReader();
Run Code Online (Sandbox Code Playgroud)
代替
self::$instance == new ConfigReader();
Run Code Online (Sandbox Code Playgroud)
并且该方法应声明为static,因为您将其用作静态方法:
public static function getInstance()
{
if( self::$instance == NULL )
{
self::$instance = new ConfigReader();
}
return self::$instance;
}
Run Code Online (Sandbox Code Playgroud)
Weth这两个修改,它应该工作;-)