Ciao, che differenza c'� tra i due seguenti richiami?
codice:$dati = new utenti(); $dati -> estrai();codice:utenti::estrai();
Ciao, che differenza c'� tra i due seguenti richiami?
codice:$dati = new utenti(); $dati -> estrai();codice:utenti::estrai();
Ciao, nel primo caso è stata definita una classe e quindi necessita di essere istanziata per poter accedere alle proprietà ed i metodi. Nel secondo caso invece la classe è stata definita come stata e quindi non necessita di istanza. Nel secondo caso puoi richiamare un metodo o una proprietà senza dover creare un oggetto.
Grazie per la risposta, dato che un metodo statico non prevede l'uso di $this e self:: non mi funziona, è una cattiva pratica richiamare un metodo non-statico in un metodo statico come segue?
codice:class dati{ private function conn(){ //... } public static function utenti(){ $conn = new conn; $connessione = $conn->conn(); //... } }
Stai cercando di utilizzare il metodo conn() all'interno del metodo utenti()?
Perch� come lo hai fatto tu crei un oggetto conn che non so se esiste.
In generale dentro un metodo statico si usa self:: per richiamare un altro metodo per� anche l'altro metodo (quello richiamato) deve essere statico, a te non funziona perch� non lo �.
Un metodo statico deve poter essere richiamato senza dover istanziare l'oggetto, quindi a logica non pu� utilizzare altri metodi non statici, che richiederebbero che l'oggetto fosse istanziato.
p.s. fixate questo forum che perde la sessione ogni 20 secondi (e perde l'encoding dei messaggi) per favore