Hello, I'm trying to get the hang of OOP here but can't quite figure out how to relate these classes. I've got one for the main project, one for the database, and one for a user. Somehow I need to get the user access to the database, without cumbersome constructor calls involving a copy of the instance of the class itself.
// main project class class gfusion { protected static $db; function __construct() { $this->db = new db; } } // database class class db { private $link; private $query; private $result; ... function query($query); function fetch_row(); function fetch_rows(); ... } // user class class user { private $id; private $group_id; private $login; private $password; /* Somehow I need to get the db class instance here. */ function __construct($id = false) { if (is_numeric($id)) { print_r($this); $this->db->query('SELECT * FROM user WHERE id = ' . $id); $user_info = $this->db->get_row(); $this->id = $user_info['id']; $this->group_id = $user_info['group_id']; $this->login = $user_info['login']; $this->password = $user_info['password']; } } ... } I tried extending the user class from the project class, but that didn't work, because the $db var was empty. I tried changing it to static, but it didn't inherit the $db variable for some reason. So, how can I make this work, so I can write a bunch of classes that can blindly use $this->db or something similar without having to worry about setting it in the constructor? I thought about setting it as a global, but that didn't seem very... OOP. -- Joel Kitching http://midgardmanga.keenspace.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php