Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Due valori dal return

  1. #1

    Due valori dal return

    Ragazzi,

    ancora una volta devo ricorrere a voi.
    Scenario:
    Ho una classe con due funzioni.
    La prima mi fa una somma di due numeri, la seconda dovrebbe stamparmi a video tre variabili,invece riesco a tirarne fuori solo uan

    Codice PHP:
       class Operazioni{
           public 
    $a;
           public 
    $b;
          
           private function 
    Somma(){
            
    $a 3;
            
    $b 5;
            
    $c $a $b;

            return 
    $c;
           }   
           
           public function 
    AltreOperazioni(){

                
    $risultato $this->Somma();
                echo 
    "Il risultato di ".$this->a."+ ".$this->b." è uguale a ".$risultato;   
           }
      }
      
      
    $lm = new Operazioni();
      
    $lm->AltreOperazioni(); 
    Il risultato che mi dà è:
    Il risultato di + è uguale a 8


    Come faccio a tirare fuori anche le variabili $a e $b? Dove diavolo sbaglio?
    Grazie sin d'ora.

  2. #2
    Nel metodo Somma() $a e $b sono riferimento a variabili locali, non appartenenti alla classe. Utilizza $this->a e $this->b.

  3. #3
    Caro Filippo,

    naturalmente dopo il tuo suggerimento funziona tutto.
    E ti ringrazio tanto.
    In pratica, se ho capito bene, aggiungendo $this (posto la versione coretta per i posteri)
    faccio riferimento alle variabili settate come public nella classe Operazioni.

    E' flusso più corretto per una operazione come questa? Oppure si poteva fare diversamente?
    Grazie ancora.

    Codice PHP:
     class Operazioni{
       
           public 
    $a;
           public 
    $b;
          
           private function 
    Somma(){
            
    $this->3;
            
    $this->5;
            
    $c $this->$this->b;

            return 
    $c;
           }   
           
           public function 
    AltreOperazioni(){

                
    $risultato $this->Somma();
                echo 
    "Il risultato di ".$this->a."+ ".$this->b." è uguale a ".$risultato;   
           }
      }
      
      
    $lm = new Operazioni();
      
    $lm->AltreOperazioni();



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.