未创建 PHP 单例对象


php singleton object not created

我正在尝试了解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];
    }
}

您创建单例的方法看起来是正确的。

尝试使用空构造函数,那里的 die(( 语句可能存在问题。

是否:// <-- dumps nothing的意思是你看到一个"NULL"正在渲染或什么都没有?

也许您有一些隐藏 var_dump(( 输出的输出缓冲。