Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Richiamare classi

  1. #1

    Richiamare classi

    Ciao, che differenza c'� tra i due seguenti richiami?

    codice:
    $dati = new utenti();
    $dati -> estrai();
    codice:
    utenti::estrai();

  2. #2
    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.

  3. #3
    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();
            //...
        }
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.