私はOOPについて学び、PHPスクリプト内で設定オブジェクトを返すシングルトンを作成しようとしています。何らかの理由で、インスタンスが決して設定されないようです。PHPシングルトンオブジェクトが作成されていません
シングルトンがそのコンストラクトを通過するときはいつでも、メッセージgetting settings
をエコーしています(既存のインスタンスを返すだけであればサイレントです)。私は直後にそれをダンプしようとする場合でも、作成されていないよう$instance
- これはスクリプト内から呼び出された
、私はmySettings::getSettings()
を呼び出すたびに1つずつ、これらgetting settings
メッセージの数十を取得しています作成されます。
誰かが間違っていると指摘できますか?
は、ここでは、コードです:
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];
}
}
コードをテストしました。作品。 – Kevin
あなたのコードはうまく動作します。 – webbiedave
@julio、webbiedaveと私は両方とも正しく動作するようになった。おそらく他の場所(クラス外)が間違っているかもしれません。助けを借りてくれてありがとう。 – Kristian