이상한 문제. 싱글 톤을 여러 번 사용했지만이 특별한 경우는 작동하지 않습니다. 덤프는 인스턴스가 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