我正在尝试了解 OOP,并创建一个单例以在 PHP 脚本中返回一个设置对象。出于某种原因,该实例似乎永远不会被设置。
每当单例通过其构造时,我getting settings
都会回显一条消息(如果它只返回现有实例,它将保持沉默)。
当从脚本中调用它时,我会收到数十条这样的getting settings
消息,每次调用时都会收到一条消息mySettings::getSettings()
——$instance
似乎没有被创建,即使我在创建后立即尝试转储它也是如此。
谁能指出我哪里出错了?
这是代码:
class mySettings {
private $settings;
private static $instance;
private function __construct(){
$configfile = "myconfig.ini";
if(!$this->settings = parse_ini_file( $configfile )){
die('CONFIG NOT FOUND/PARSED');
}
}
public static function getSettings(){
if ( !self::$instance ){
echo "getting settings-- no instance found!";
self::$instance = new mySettings();
var_dump(self::$instance); // <-- dumps nothing
}
return self::$instance;
}
public function setParam( $key, $value ){
$this->settings[$key] = $value;
}
public function getParam( $key ){
return $this->settings[$key];
}
}