Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problemi con oop e funzioni

    ciao a tutti, in una class "figlia" ho questa riga
    codice:
    $qv = $super->doQuery("SELECT link FROM menu WHERE codice = '$codice'");
    nella
    classe madre ho la funzione doQuery, quindi in teoria questa riga dovrebbe dire di prendere la funzione della classe madre e salvarne il risultato in $qv no?

    però mi dà questo errore
    codice:
    Fatal error: Call to a member function doQuery() on a non-object in /srv/www/prova/dbfun.class.php on line 9
    come mai? come si fà ad utilizzare le funzione di una classe superiore?

    grazie ciao

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Codice PHP:
    <?
    Class madre{

      function 
    somma($x$y){
        
    $r $x $y;
        return 
    $r;
      }

    }

    Class 
    figlia extends madre{
      
      function 
    faiSomma($x$y){
        return 
    parent::somma($x,$y);
      }
      
    }

    $f = new figlia();
    $res $f->faiSomma(2,3);

    echo 
    $res;
    ?>
    alcool: la causa e la soluzione di tutti i problemi

  3. #3
    ok... e super per cosa si usa ?

  4. #4
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Originariamente inviato da Il_FIlosofo
    ok... e super per cosa si usa ?
    ho iniziato php ad oggetti solo 1 mese e mezzo fa... quindi non sono sicuramente un esperto! pero fino ad ora ho sempre usato parent... presumo sia la versione php del super?..

    però non so.. hai guardato nella doc?
    alcool: la causa e la soluzione di tutti i problemi

  5. #5
    no... avevo io super l'avevo visto in qualche tempo fà in alcuni script php comunque, magari ci do un occhio adesso c

    ciao e grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    29

    Re: problemi con oop e funzioni

    Originariamente inviato da Il_FIlosofo
    ciao a tutti, in una class "figlia" ho questa riga
    codice:
    $qv = $super->doQuery("SELECT link FROM menu WHERE codice = '$codice'");
    nella
    classe madre ho la funzione doQuery, quindi in teoria questa riga dovrebbe dire di prendere la funzione della classe madre e salvarne il risultato in $qv no?

    però mi dà questo errore
    codice:
    Fatal error: Call to a member function doQuery() on a non-object in /srv/www/prova/dbfun.class.php on line 9
    come mai? come si fà ad utilizzare le funzione di una classe superiore?

    grazie ciao
    Se nella classe figlia c'è una funzione con lo stesso nome della classe madre , per chiamare quella della classe madre puoi usare:

    $figlio::funzione();

    Cmq il tuo errore mi sembra più indicare che non hai inizializzato correttamente l'oggetto.

  7. #7
    si, alla fine gli ho passato una connessione al db da "fuori" e cosi ora ho

    codice:
    $qv = $DB->doQuery("SELECT link FROM menu WHERE codice = '$codice'");
    comunque mi interessava sapere se a cosa serviva super

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.