Ciao!
Probabilmente è una domanda banale, ma con php5 (sono nuovo nuovo del linguaggio in questione in generale...) non ho chiaro come realizzare la seguente cosa:
immaginate di avere un classe di connessione ad un db che definisce un costruttore con username, pwd, host, etc...e che contiene altri metodi di "accesso" al db stesso per eseguire stored procedure, PS, etc...
Ora, diciamo che banalmente nell'index.php (per ora tralascio volutamente questioni di SESSIONI e cose simili...) abbiamo uno skeleton che effettua un case simile a questo:
<?php
....
if(isset($_GET['show_login'])) {
show_login_form();
}
else if(isset($_POST['login'])) {
$db_connection = new db_handle("127.0.0.1", "db", $_POST['usernm'], $_POST['passwd']);
$db_connection->db_connect();
}
php>
Nel form sono ovviamente inseriti i dati di connessione e tramite POST viene richiamato il primo ramo elseif. Ora, mettiamo di voler richiamare un altro metodo di db_connection, ma da un altro ramo...l'oggetto non è più ovviamente visibile, però era logico crearlo lì dato che era a quel punto che veniva richiesta la connessione ed erano disponibili i dati.
Quindi, come si può "globalizzare" quell'oggetto? Ho provato in alcuni modi usando il modificatore global ma non funziona: se l'oggetto fosse inizializzato a livello globale (prima dell'if ad esempio...) allora si, ma essendo inizializzato in un ramo la cosa non funziona.
COsa mi sfugge?
Grazie!
Ciao!