Problème étrange. J'ai utilisé Singleton plusieurs fois, mais ce cas particulier ne veut tout simplement pas fonctionner. Dump dit que l'instance est nulle.PHP OOP singleton ne renvoie pas d'objet
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();
Catégorie de base
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()
{
...
}
}
code d'erreur
Fatal error: Call to a member function settings() on a non-object in path
Il est peut-être une faute de frappe stupide, mais je n'ai aucune erreur dans mon éditeur. Merci pour les réponses rapides comme toujours.
+1 Aussi, je pense que le bit '$ this-> created' (dans l'OP) est un peu inutile, parce que techniquement' (self :: $ instance! == null) 'et' $ this-> created == true' sont équivalents. – netcoder
@netcoder Merci, ajouté. –
Je sais maintenant - mais je ne savais pas que j'avais cette erreur. Merci – Misiur