Se usi l'estensione MySQL, non devi preoccuparti di propagare la resource della connessione.
Se invece utilizzi MySQLi in modalità a oggetti, giustamente c'è il problema di propagare l'istanza della classe.
Ma a questo punto perché non sfruttare le proprietà statiche degli oggetti? 
Codice PHP:
class DB {
public static function getConnection() {
if (self::$connection === NULL)
self::$connection = new Mysqli('host', 'user', 'pass', 'dbname');
return self::$connection;
}
public static $connection;
} // Fine Classe DB
function blabla() {
DB::getConnection()->query('query da eseguire');
}
Questa è solo una classe rudimentale che implementa il pattern chiamato "Active Record", oltre al pattern Singleton per accedere una sola volta al database.