Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Nella funzione salvoLibro() tu fai un

    return "Libro salvato" .$this->leggoTitolo();

    return non stampa niente, restituisce solo un valore, per stamparlo a video devi farne l'echo, per questo se usi echo funziona.

    E' giusto che per come hai scritto il codice venga prima stampato il titolo e l'autore del libro e poi il messaggio del salvataggio avvenuto, funziona così:

    echo $nlibro -> salvoLibro();

    viene eseguita la funzione salvoLibro(), la quale chiama leggoTitolo()
    leggoTitolo() stampa il titolo e l'autore del libro perché c'è l'echo, poi termina la sua esecuzione e si torna a salvoLibro()
    ora salvoLibro() ritorna la stringa "Libro salvato" .$this->leggoTitolo() che viene stampata dall'echo messo nella chiamata
    echo $nlibro -> salvoLibro();

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Nella funzione salvoLibro() tu fai un

    return "Libro salvato" .$this->leggoTitolo();

    return non stampa niente, restituisce solo un valore, per stamparlo a video devi farne l'echo, per questo se usi echo funziona.

    E' giusto che per come hai scritto il codice venga prima stampato il titolo e l'autore del libro e poi il messaggio del salvataggio avvenuto, funziona così:

    echo $nlibro -> salvoLibro();

    viene eseguita la funzione salvoLibro(), la quale chiama leggoTitolo()
    leggoTitolo() stampa il titolo e l'autore del libro perché c'è l'echo, poi termina la sua esecuzione e si torna a salvoLibro()
    ora salvoLibro() ritorna la stringa "Libro salvato" .$this->leggoTitolo() che viene stampata dall'echo messo nella chiamata
    echo $nlibro -> salvoLibro();
    quindi viene chiamata leggoTitolo(), al termine di questa funzione non c'è nessun altra operazione se non il return "libro salvato".
    quindi non si tratta di precedenza, proprio perchè il return è l'operazione finale di una funzione. Se c'è la funzione ritorna qualcosa.



    Se avessi voluto usare il comando
    Codice PHP:
     $nlibro -> salvoLibro(); 
    senza echo, e vedere prima "Libro salvato " e poi il titolo e l'autore
    dovevo impostare la funzione salvoLibro() così:

    Codice PHP:

    <?php
    class Libro {     
    public 
    $titolo;     
    public 
    $autore;  
    public 
    $codiceisbn
    public 
    $prezzo;  
    private 
    $quantita;   
          
     public function 
    leggoTitolo(){       

      echo 
    $this->titolo '-' $this->autore;     }    

    public function 
    salvoLibro(){         
        echo 
    "Libro salvato" .$this->leggoTitolo();  }   


      }

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.