Visualizzazione dei risultati da 1 a 7 su 7

Discussione: variabile da un metodo

  1. #1
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    variabile da un metodo

    Ciao, non riesco a capire come recuperare una variabile da un metodo, cerco di spiegarmi:
    nel file class.php ho una classe con i vari metodi (connessione ecc) ed il MioMetodo.
    In un altro file che chiamo file2.php includo class.php ed invoco il metodo:
    Codice PHP:
    include_once 'class.php';
    $obj = new Myclass();
    $obj->MioMetodo(); 
    dove MioMetodo è una cosa del genere
    Codice PHP:
    class Myclass{
      public 
    $conn;
      .............
    public function 
    MioMetodo()
          {
        
    $sql "SELECT * FROM table WHERE colonna = '".$valore."'";
        
    $res mysql_query($sql,$this->conn);
        if(
    $row mysql_fetch_array($res))
             {
           echo 
    '.$row['col1'].$row['col2'].......
             }

    vorrei recuperare $id per poterlo gestire in file2.php(ovviamente non visualizzarlo come il resto delle var)
    mi illuminate per favore
    If you think your users are idiots, only idiots will use it. DropBox

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    residenza
    Brescia
    Messaggi
    81
    dov'è $id?
    cmq da una classe le recuperi nello stesso modo in cui le setti o chiami i metodi

    variabile = nomeistanza->variabile

    $id = $obj->id;

    ovviamente all'inizio della classe devi dichiararla come public, e nel metodo
    settarla con il valore della variabile $id del metoto

    almeno mi pare...

  3. #3
    Istanza l'oggetto oppure estendi la classe e usa la funzione parent:: per richiamare
    la funzione

  4. #4
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    È buona pratica incapsulare il codice quindi quanto detto dall'altro utente andrebbe implementato come segue:
    Codice PHP:
    class MyClass
    {
        private 
    $_myVar null;

        public function 
    myMethod() 
        { 
             
    // ...
             
    $this->_myVar $row['MyVar'];
        }

        public function 
    setMyVar($value)
        {
            
    $this->_myVar $value;
            return 
    $this;
        }

        public function 
    getMyVar()
        {
            return 
    $this->_myVar;
        }
    }

    $obj = new Myclass(); 
    $obj->setMyVar('MyValue');
    $myValue $obj->getMyVar(); 

  5. #5
    Originariamente inviato da _debo
    È buona pratica incapsulare il codice quindi quanto detto dall'altro utente andrebbe implementato come segue:
    Codice PHP:
    class MyClass
    {
        private 
    $_myVar null;

        public function 
    myMethod() 
        { 
             
    // ...
             
    $this->_myVar $row['MyVar'];
        }

        public function 
    setMyVar($value)
        {
            
    $this->_myVar $value;
            return 
    $this;
        }

        public function 
    getMyVar()
        {
            return 
    $this->_myVar;
        }
    }

    $obj = new Myclass(); 
    $obj->setMyVar('MyValue');
    $myValue $obj->getMyVar
    Ne
    Aggiungerei anche una funzione in cui la setti e la ottieni
    codice:
     public function set_and_get($value) 
        { 
            return $this->_myVar = $value; 
        } 
    $var = $obj->set_and_get('valore');

  6. #6
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Originariamente inviato da Plopper
    Aggiungerei anche una funzione in cui la setti e la ottieni
    codice:
     public function set_and_get($value) 
        { 
            return $this->_myVar = $value; 
        } 
    $var = $obj->set_and_get('valore');
    A che scopo? È un metodo aggiuntivo di difficile lettura. Se proprio vuoi ottenere lo stesso risultato basta che usi la mia soluzione che supporta chain calls.

    Codice PHP:
    $obj = new Myclass();  
    $myValue $obj->setMyVar('MyValue')->getMyVar(); 
    Getter e Setter devono rimanere isolati per favorire l'incapsulamento e la sicurezza e mantenere il codice più manutenibile.

  7. #7
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ok grazie a tutti !
    If you think your users are idiots, only idiots will use it. DropBox

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