奇妙なトラブル。私はシングルトンを複数回使用しましたが、この特定のケースは機能したくありません。 Dumpはインスタンスがnullであることを示します。PHP OOPシングルトンはオブジェクトを返さない
define('ROOT', "/");
define('INC', 'includes/');
define('CLS', 'classes/');
require_once(CLS.'Core/Core.class.php');
$core = Core::getInstance();
var_dump($core->instance);
$core->settings(INC.'config.php');
$core->go();
コアクラス
class Core
{
static $instance;
public $db;
public $created = false;
private function __construct()
{
$this->created = true;
}
static function getInstance()
{
if(!self::$instance) {
self::$instance = new Core();
} else {
return self::$instance;
}
}
public function settings($path = null)
{
...
}
public function go()
{
...
}
}
エラーコード
Fatal error: Call to a member function settings() on a non-object in path
それはおそらくいくつかの愚かなタイプミスだが、私は私のエディタですべてのエラーを持っていません。いつものように速い応答に感謝します。
+1また、技術的に '(self :: $ instance!== null)'と '' $ this->」という部分がありますので、OPの '$ this-> created'ビットは役に立たないと思います。 created == true'は同等です。 – netcoder
@netcoderありがとうございました。 –
私は今知っている - しかし、私はこのエラーがあったことを認識していない。ありがとう – Misiur