у меня есть этот код:Как сделать объекты доступными по всему миру?
class IC_Core {
/**
* Database
* @var IC_Database
*/
public static $db = NULL;
/**
* Core
* @var IC_Core
*/
protected static $_instance = NULL;
private function __construct() {
}
public static function getInstance() {
if (! is_object(self::$_instance)) {
self::$_instance = new self();
self::initialize(self::$_instance);
}
return self::$_instance;
}
private static function initialize(IC_Core $IC_Core) {
self::$db = new IC_Database($IC_Core);
}
}
, но когда я хочу IC_Database доступа с:
$IC = IC_Core::getInstance();
$IC->db->add() // it says that its not an object.
я думаю, что проблема заключается в самостоятельной :: $ дб = новый IC_Database ($ IC_Core);
но я не знаю, как заставить его работать.
кто-то может дать мне руку =)
спасибо!
спасибо, что это сработало! –
Похоже, что у вас есть статический '$ _instance' с нестатической' $ db'. – Tgr
@Tgr: '$ db' является локальным для экземпляра, но есть только один из них. Он работает эффективно одинаково. –