Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Errore costruttore

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277

    Errore costruttore

    Ciao a tutti.
    ho una classe i cui data flieds sono:

    Codice PHP:

    class Pippo
    {
    public 
    $sel_id;    /** an integer value */
    public $sel_size;
    public 
    $sel_value;
    public 
    $sel_len;
    public 
    $sel_isdis;
    public 
    $sel_upperlimit;
    public 
    $sel_lowerlimit;
    public 
    $subfold;
    public 
    $myconn;
    public 
    $sel_optionjs;  //opzione
    public $width_px/**lunghezza della select in px*/

    private  $sel_selected;
    ... 
    Io vorrei che sel_selected venisse inizializzato con sel_value. per questo ho creato un costruttore che fa ancghe questa semplice cosa:

    Codice PHP:
    public function __construct($sel_optionjs'',
                                
    $width_px 100
      { 
        
    $this->sel_selected $this->sel_value;
      if (
    $sel_optionjs == '') {$this->sel_optionjs '';}
       else {
    $this->sel_optionjs $sel_optionjs;} 
       if(
    $this->sel_upperlimit<$this->sel_lowerlimit)
       echo
    'errore';
       if (
    $width_px == '') {$this->width_px 100;}
       else {
    $this->width_px $width_px;} /** Fissa lunghezza a 100 se non specificato*/

    Purtroppo però se in una funzione memmbro stampo sua sel_selected cghe sel_value, nella prima non stampa nulla, mentre nella seconda il valore che avevo assegnato, ovvero se uso:

    Codice PHP:
    public function stampa()
      { 
       echo 
    $this->sel_value();
       echo
    ' ';    
       echo 
    $this->sel_selected();


    e poi la richiamo con:

    Codice PHP:
    pippo = new Pippo;

    pippo->sel_value 'ciao'
    pippo->stampa(); 

    Mi aspetterei ciao ciao ed invece stampa solo ciao (una volta).
    Sapreste spiegarmi il perché???
    Frequentatore del ForumAlMaschile http://www.forumalmaschile.com

  2. #2
    e xkè mai ti aspetti due volte ciao?
    Administrator of NAMDesign.Net

  3. #3
    nel costruttore inizializzi sel_selected con sel_value, ma sel_value non è inizializzato quindi sel_selected = null. Quando poi fai pippo->sel_value = 'ciao', avrai inizializzato solo sel_value, non sel_selected

    se vuoi che sel_selected venga inizializzato una volta impostato sel_Value:

    Codice PHP:

    setSelValue
    ($value){
       
    $this->sel_value=$value;
      if(!
    $this->sel_selected)
          
    $this->sel_selected $value;
    }

    ...


    $pippo->setSelValue('ciao');
    $pippo->stampa(); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Ok, mi sa che quello che mi è sfuggito è che il costruttore viene lanciata come funzione all'inizializzazione della classe ovvero quando faccio:

    Codice PHP:
    $pippo = new Pippo
    Grazie mille a tutti!!!
    Frequentatore del ForumAlMaschile http://www.forumalmaschile.com

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.