sto cercando di creare una classe personalizzata per la gestione della connessione al mio db.
Ho una discreta base di programmazione ad oggetti in java, ma non ho alcuna esperienza con php.
Il mio codice base è questo:


Codice PHP:
<?php
    
class DBConnection
    
{                
        private 
$DBName;
        private 
$ServerIP;
        private 
$ServerPort;
        private 
$UserName;
        private 
$UserPassword;
        
        private 
$DataBase;
        
        public function 
__construct()
        {
            
$DBName="test";
            
$ServerIP="localhost";
            
$ServerPort=8889;
            
$UserName="root";
            
$UserPassword="root";        
        }
       
        public function 
connect()
        {
            
$DataBase = new mysqli($ServerIP$UserName$UserPassword$DBName,$ServerPort);
        }
        
        public function 
disconnect()
        {
            
$DataBase->close();
        }
    }
?>
Richiamo nella pagina che utilizzerò questo codice:
Codice PHP:
<?php
        
include("DBConnection.php");
           
$db=new DBConnection();
           
$db->connect();
           
$db->disconnect();
?>
l'errore è:

PHP Fatal error: Call to a member function close() on a non-object
l'errore si riferisce alla riga "$DataBase->close();" perchè non riconosce la variabile come oggetto.
L'oggetto è stato creato nella funzione "connect()", ma evidentemente non se ne accorge.
Come risolvo?
Più che altro vorrei capire come si comporta php in queste situazioni.

Grazie