Hello,
Yeah. That will work. I do basically the same thing. While it might be cleaner to do a require_once and instantiate the database class inside the class that needs it, it's a debatable practice. Either method is likely to stir debate, but I'm not sure if a single consensus will ever be reached.
I started out instantiating inside each class with a pconnect(), but started getting errors saying things like: "cannot create a new thread". This led me to pass the objects by reference. Still didn't fix the problem though.
That problem (as far as I can tell) is related to a MySQL-Linux bug when making connections through any dbuser account other than the root account for the database. It's a very bad thing, but I have not found a fix for it yet.