У меня есть один главный класс «main», который я использую для хранения конфигурации и несколько объектов.Однако я не могу получить доступ к объектам и переменным в классе, который расширяет main, через $this
.
. Вот некоторые из моих основных классов:
<?php
class main{
// the configuration vars
public $config = array();
// the current user variables
public $uid; // contains the user ID
public $gid; // contains the group ID
// database variables
public $DB; // contains the connection
public $query_id; // contains the query ID
public $query_count; // how many queries have there been?
// cache variables
public $cache;
// start up functions
public function startup(){
// first, set up the caching
if(function_exists('memcache_connect') AND $this->config['use_memcache'] == true){
// start up memcache
require_once('memcache.class.php');
$this->cache = Cache::getInstance();
}
// now, set up the DB
$this->connectToDatabase();
// now, set up the user session
$this->setUserSession();
// are we logged in? If so, update our location
if($this->uid > 0){
// update location
$this->updateUserSession();
}
}
Вот примердругого класса
<?php
class user extends main{
public function viewProfile($uid){
exit($this->config['session_prefix']); // displays nothing
if($this->cache->exists('key')){ // fails
Значение $ config установлено правильно, и я могу прочитать его в main
, но не в любом подклассе.Объект $ cache-> exist просто приводит к Call to a member function exists() on a non-object
.
В index.php классы загружаются и настраиваются.Сначала устанавливается класс Main, и вызывается функция запуска.Массив конфигурации передается перед вызовом запуска.
Кто-нибудь может подсказать, как я могу это исправить?