OOP について学び、PHP スクリプト内で設定オブジェクトを返すシングルトンを作成しようとしています。何らかの理由で、インスタンスが設定されないようです。
getting settings
シングルトンがその構造を通過するたびにメッセージをエコーします(既存のインスタンスを返すだけの場合はサイレントです)。
これがスクリプト内から呼び出されると、getting settings
呼び出すたびに 1 つずつ、数十のメッセージ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];
}
}