ciao.
Ho una classe GestoreNegozio che come attributo ha un array.

Questo array contiene oggetti di tipo Negozio

Ogni oggetto Negozio ha come attributo un array di oggetti Dvd

a questo punto....quando aggiungo oggetti Dvd all'oggetto Negozio , se guardo la lunghezza dell'attributo della Negozio vedo che e' stato aggiunto....ma se parto da GestoreNegozio , estraggo l'elemento n corrispondente all'oggetto Negozio (quello sul quale avevo aggiunto un elemento), e controllo quanto e' lungo.....rimane invariato.

Faccio notare che la cosa in php5 funziona benissimo.
Dopo continue provo sono arrivato alla conclusione che l'oggetto Negozio che estraggo dall'attributo della GestoreNegozio è una copia....non e' propriamente quell'oggetto...
Non so e non ho capito bene quando devo anteporre il carattere & davanti agli oggetti.


Spero di essere stato chiaro anche senza codice...
Ma ecco il codice che invito a farvi testare su php4 e su php5 ....noterete i risultati diversi

Codice PHP:

class GestoreNegozio{
     
     var 
$elencoNegozi;

     function 
GestoreNegozio(){
        
$this->elencoNegozi = array();
     }

     function 
getNegozio($i){
        
$allNeg = &$this->elencoNegozi;
        return 
$allNeg[$i];
    }

    function 
addNegozio($negozio){
        
$allNeg = &$this->elencoNegozi;
        
$allNeg[]=$negozio;
    }
    
    
    function 
countDvd(){
     
$allNeg = &$this->elencoNegozi;
      
$cont=0
       for(
$i=0;$i<count($allNeg);$i++){
             
$neg=$this->getNegozio($i);
             
$tot_neg $neg->countDvd();
             
$cont$cont+$tot_neg;
       }
       return 
$cont;
    }
    
}



class 
Negozio{
     
     var 
$elencoDvd;

     function 
Negozio(){
        
$this->elencoDvd = array();
     }

     function 
getDvd($i){
        
$allDvd = &$this->elencoDvd ;
         return 
$allDvd[$i]; 
    }

   function 
addDvd($dvd){
        
$alldvd = &$this->elencoDvd;
        
$alldvd[]=$dvd;
    }
    
    function 
countDvd(){
       
$allDvd = &$this->elencoDvd ;
      return 
count($allDvd);
    }
    
    
    
}



class 
Dvd{
   function 
Dvd(){
   }

}


$gest = new GestoreNegozio();
$negozio = new Negozio();
$dvd1 = new Dvd();


//aggiungo il negozio al gestore
$gest->addNegozio($negozio);

//estraggo il primo negozio
$neg $gest->getNegozio(0);
$neg->addDvd($dvd1);



echo 
"il negozio ha" $neg->countDvd() . "dvd";
echo 
"
"
;


echo 
"il gestore ha "$gest->countDvd() . "dvd"


aiuto sono disperato...