Ciao ragazzi,
sto avviandomi alla programmazione ad oggetti e ci sono diverse cose che non mi sono troppo chiare...

Ad esempio non capisco come potere risolvere il seguente errore:

Fatal error: Call to a member function on a non-object

ottenuto quando cerco di richiamare una funzione che al suo interno prevede chiamate ad una classe esterna...

Nello specifico, cerco di richiamare tramite

$prova = validate_username($_POST['username']);

la seguente funzione

Codice PHP:
function validate_username($username)
{
    global 
$db$lang$userdata;

    
// Remove doubled up spaces
    
$username preg_replace('#\s+#'' 'trim($username)); 
    
$username phpbb_clean_username($username);

    
$sql "SELECT username 
        FROM " 
USERS_TABLE "
        WHERE LOWER(username) = '" 
strtolower($username) . "'";
    if (
$result $db->sql_query($sql))
    {
        while (
$row $db->sql_fetchrow($result))
        {
            if ((
$userdata['session_logged_in'] && $row['username'] != $userdata['username']) || !$userdata['session_logged_in'])
            {
                
$db->sql_freeresult($result);
                return array(
'error' => true'error_msg' => $lang['Username_taken']);
            }
        }
    }
    
$db->sql_freeresult($result);

    
$sql "SELECT group_name
        FROM " 
GROUPS_TABLE 
        WHERE LOWER(group_name) = '" 
strtolower($username) . "'";
    if (
$result $db->sql_query($sql))
    {
        if (
$row $db->sql_fetchrow($result))
        {
            
$db->sql_freeresult($result);
            return array(
'error' => true'error_msg' => $lang['Username_taken']);
        }
    }
    
$db->sql_freeresult($result);

    
$sql "SELECT disallow_username
        FROM " 
DISALLOW_TABLE;
    if (
$result $db->sql_query($sql))
    {
        if (
$row $db->sql_fetchrow($result))
        {
            do
            {
                if (
preg_match("#\b(" str_replace("\*"".*?"preg_quote($row['disallow_username'], '#')) . ")\b#i"$username))
                {
                    
$db->sql_freeresult($result);
                    return array(
'error' => true'error_msg' => $lang['Username_disallowed']);
                }
            }
            while(
$row $db->sql_fetchrow($result));
        }
    }
    
$db->sql_freeresult($result);

    
$sql "SELECT word 
        FROM  " 
WORDS_TABLE;
    if (
$result $db->sql_query($sql))
    {
        if (
$row $db->sql_fetchrow($result))
        {
            do
            {
                if (
preg_match("#\b(" str_replace("\*"".*?"preg_quote($row['word'], '#')) . ")\b#i"$username))
                {
                    
$db->sql_freeresult($result);
                    return array(
'error' => true'error_msg' => $lang['Username_disallowed']);
                }
            }
            while (
$row $db->sql_fetchrow($result));
        }
    }
    
$db->sql_freeresult($result);

    
// Don't allow " and ALT-255 in username.
    
if (strstr($username'"') || strstr($username'"') || strstr($usernamechr(160)))
    {
        return array(
'error' => true'error_msg' => $lang['Username_invalid']);
    }

    return array(
'error' => false'error_msg' => '');

e l'errore si riferisce a questa riga:

$db->sql_freeresult($result);


Grazie per l'aiuto