Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [PHP] problema return

  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    [PHP] problema return

    Ciao a tutti,

    stavo implementando una semplice funzione ricorsiva di test per le briciole di pane solo che non riesco a far ritornare alla funzione il valore calcolato della stessa come stringa.

    Codice PHP:
    function briciole($id,$briciole '') {                            
                
                if (
    $id != 0) {
                
                    
    $sql "select * from pagine where paginaID = '".$id."'";
                    
    $result mysql_query($sql);
                    if (
    $row mysql_fetch_assoc($result)) {
                                                                
                        
    $briciole $row['pagina_titolo'] . ' » ' $briciole;                                                            
                                                                
                        if (
    $row['pagina_parentID'] != 0) {
                            
    briciole($row['pagina_parentID'],$briciole);                            
                        }  else {
                            return 
    $briciole;
                        }          
                    
                    }    
                
                }
            
        } 

    poi il valore lo stampo con:

    codice:
    <div><?php echo briciole(7); ?></div>
    Se invece di RETURN metto un ECHO allora la stringa appare a video come ad esempio:

    Azienda » Contattaci » Recapiti » Dove siamo »

    la tabella a DB su cui eseguo la funzione è impostato semplicemente con dei campi:

    paginaID, pagina_parentID, pagina_titolo

    Grazie anticipatamente per l'aiuto.

  2. #2
    prova a mettere una variabile...

    <div><?php echo $briciole = briciole(7); ?></div>

  3. #3
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Beh ma non dovrebbe servire e comunque non funziona.

    Ma grazie lo stesso.

    Qualche altra anima pia?

  4. #4
    prova a cambiare la riga:
    Codice PHP:
     briciole($row['pagina_parentID'],$briciole); 
    con:
    Codice PHP:
     return briciole($row['pagina_parentID'],$briciole); 

  5. #5
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Ok funziona, grazie mille.

    Mi sapresti spiegare dov'era il mio errore e come mai ci vuole il RETURN anche nelle successive chiamate interne alla funzione?

    Bye.

  6. #6
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    doppio

  7. #7
    ciao, ci vuole il rerutn perchè comunque in quel punto la funzione "ritorna" qualcosa, ossia ritorna il risultato della funzione che stai chiamando (se stessa in questo caso), se non metti il return non ti "ritornerà" nulla!

  8. #8
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Grazie mille, capito.

    Anche se concettualmente il meccanismo di come venga calcolato il risultato della funzione ricorsiva ancora non mi è chiaro del tutto.

    :master:

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.