Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737

    function all'interno di una classe e return variabile

    ho un problema.
    premetto che la cosa sarà sicuramente banale ma sono alle prime armi con le classi e ho bisogno di capire bene

    ho una classe con all'interno delle funzioni.
    una di queste funzioni serve per impostare delle variabili che mi servono al di fuori della classe.
    Ora... come faccio a leggere queste variabili fuori dalla classe?

    Se al termine di una funzione scrivo return $nomeVariabile questa viene restituita dove viene richiamata. ok. ma se le variabili sono 10 non posso ovviamente usare 10 return ma ne avrò uno solo e le altre non le posso leggere...
    quindi come posso fare?
    Chicco Ravaglia per sempre con noi!

  2. #2
    Ciao,
    hai mai sentito parlare di metodi getter&setter?

    Sono metodi pubblici di una classe che permettono di valorizzare e ricevere i valori delle proprietà di una classe.

    Es:
    class esempio{
    private $a;
    private $b;

    public function setA($t){
    $this->a = $t;
    }

    public function getA(){
    return $this->a;
    }

    public function setB($t){
    $this->b = $t;
    }

    public function getB(){
    return $this->b;
    }

    }

    Con questi metodi pubblici accedi ai valori dei membri di una classe.
    Per farti un'idea puoi dare uno sguardo qui:
    http://mirkoagrati.110mb.com/articol...t2.php&dir=PHP

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    di fatto dovrei fare una funzione per ogni variabile, giusto? :master:

    per il momento ho ovviato creando un array contenente le variabili che mi restituivano e restituirlo alla pagina attraverso return
    una cosa di questo tipo

    $dati[reteNew]=$this->reteNew;
    return $dati

    in questo modo in pagina posso leggerlo semplicemente come $datiLoggato[reteNew];


    cosa ne pensi? può andare come metodo?
    Chicco Ravaglia per sempre con noi!

  4. #4
    Non so cosa dirti,
    se le variabili sono proprietà della classe dovrebbero essere tutte private in modo da utilizzarle con i getter/setter.

    Se però utilizzi l'array forse è perchè non sai quante variabili ti servono e allora l'unica miglioria che puoi fare è:

    class tuaclasse{
    private $arr = array();

    //Aggiungi un valore all'array
    public function setArrObj($obj){
    $this->arr[] = $obj;
    }

    //Prelevi un valore dall'array
    public function getArrObj($indice){
    return $this->arr[$indice];
    }

    //setti l'intero array
    public function setArr($arr){
    $this->arr = $arr;
    }

    //prendi l'intero array
    public function getArr($arr){
    return $this->arr;
    }
    }

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  5. #5
    Utente di HTML.it L'avatar di zoom
    Registrato dal
    Dec 2001
    Messaggi
    1,737
    le variabili non sono private...
    di fatto sono delle variabili ricavate semplicemente da una query.
    però quella query mi serve all'interno della classe perchè viene richiamata solo in determinate situazioni.
    poi le variabili ottenute però non sono private, e quindi volevo usarle anche in pagina.
    se non ha controindicazioni logiche e non pensi che appesantisca eccessivamente la pagina resto così perchè funziona decisamente bene...
    Chicco Ravaglia per sempre con noi!

  6. #6
    Impara l'arte
    e mettila da parte.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  7. #7
    Ciao.
    Per la cronaca setter/getter sono una cosa
    un po diversa nel manuale overloading


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Si,
    ma qui non si tratta di overloading di membri o function,
    qui si parla squisitamente di metodi di approccio alla programmazione ad oggetti:
    incapsulamento in particolare.

    Io sono uno sviluppatore J2EE (sviluppo per piacere personale in PHP) e devo dire
    che portare i concetti che ho appreso con java nella programmazione PHP OOP mi fa sentire a casa e sicuramente arricchisce la qualità del codice che scrivo,
    perchè i concetti, se validi, vanno generalizzati ed estesi a tutto ciò che li può supportare.

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

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.