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

    Metodi che restituiscono valori, come fare in PHP?

    Ciao,
    ho appena iniziato a studiare PHP ad oggetti...mi sono imbattuto in una cosa che non mi aspettavo (sopratutto perchè vengo da Java)

    Praticamente mi pare di capire che in PHP la copia di oggetti sia per valore e non per riferimento (al contrario di Java) e che i metodi non possono ritornare valori...

    Ad esempio se io avessi qualcosa del genere:

    codice:
    private $heap[];   // Array che contiene una struttura dati heap
    
    private $des; // Variabile che contiene la posizione del figlio destro di ogni elemento dell'heap
    
    private $sin; // Variabile che contiene la posizione del figlio sinistro di ogni elemento dell'heap
    
    $this->sin = $this->sinistro($padre);   // Mette dentro sin la posizione nell'heap del figlio sinistro del terzo elemento
    Il metodo sinistro() per calcolare la posizione del figlio sinistro dell'elemento in posizione 3 calcola semplicemente la posizione doppia....quindi dentro sin ci dovrebbe stare il valore 6

    codice:
    private function sinistro($padre){
            $sinistro = 2 * $padre;
            }
    Così potrebbe essere una soluzione per l'esempio precedente?
    In pratica quando fà la chiamata con:
    $this->sin = $this->sinistro($padre);
    mette dentro la variabile $sin il valore della variabile $sinistro calcolata dal metodo $sinistro().

    Però mi sembra un po' macchinoso come metodo...sarà che in Java si può far tornare valori ad un metodo...in PHP c'è modo di fare qualcosa del genere?

    Grazie
    Andrea

  2. #2
    devi aggiungere il return ne metodo:
    private function sinistro($padre){
    $sinistro = 2 * $padre;
    return $sinistro;
    }

  3. #3
    Originariamente inviato da E.d.i.73
    devi aggiungere il return ne metodo:
    private function sinistro($padre){
    $sinistro = 2 * $padre;
    return $sinistro;
    }
    Ok...ma nell'intestazione del metodo:
    private function sinistro($padre){

    non devo mettere qualcosa che gli dice che stà ritornando un valore...in C o Java ci si mette il tipo di ritorno...qualcosa come: private int sinistro($padre) in PHP però pare che i tipi vengano gestiti in maniera completamente diversa...dubbio...

  4. #4

  5. #5
    Originariamente inviato da E.d.i.73
    Dovresti darti una letta sull OOP DI PHP:
    http://php.html.it/guide/leggi/167/g...tti-con-php-5/
    Quello stò leggendo...ma quando parla dei metodi fà vedere solo metodi che non ritornano nulla...

  6. #6
    Mi immetto nella discussione

    Il php non è un linguaggio fortemente tipizzato, quindi non c'è la necessita di dichiare il tipo di valore di ritorno.
    Quindi basta far ritornare il valore, come ti ha detto E.d.i.73

    return 2 * $padre;

    php è intelligente, sa lui cosa gli ritorna

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.