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

    Metodo Set in una classe con array

    Ho un piccolo problema che ancora non riesco a capire:
    supponiamo di avere una classe con un metodo set


    codice:
    class Prodotto{
      var $dati_prodotto;
    
    function setProdotto($dati){
       $this-$dati_prodotto = $dati;
    }
    
    }

    dove alla funzione setProdotto, viene passato un array associativo del tipo
    $prodotto["codice"] = "jepoifj";
    $prodotto["prezzo"] = 200;
    .....

    se ora all'interno della funzione mi faccio stampare il valore di un qualsiasi elemento dell'array $dati, me lo stampa giusta, mentre se faccio x esempio stampare il valore di $this->$dati_prodotto["prezzo"], mi viene fuori "Array", qualcuno può dirmi dove sbaglio?

  2. #2
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: Metodo Set in una classe con array

    Originariamente inviato da V1RuZ
    Ho un piccolo problema che ancora non riesco a capire:
    supponiamo di avere una classe con un metodo set


    codice:
    class Prodotto{
      var $dati_prodotto;
    
    function setProdotto($dati){
       $this-$dati_prodotto = $dati;
    }
    
    }

    dove alla funzione setProdotto, viene passato un array associativo del tipo
    $prodotto["codice"] = "jepoifj";
    $prodotto["prezzo"] = 200;
    .....

    se ora all'interno della funzione mi faccio stampare il valore di un qualsiasi elemento dell'array $dati, me lo stampa giusta, mentre se faccio x esempio stampare il valore di $this->$dati_prodotto["prezzo"], mi viene fuori "Array", qualcuno può dirmi dove sbaglio?
    prova a fare un print_r di $this->$dati_prodotto e vedi cosa stampa

  3. #3
    mi stampa l'array...
    allora, ci riprovo xchè non capisco proprio cosa succede, ho questa classe:
    Codice PHP:
    class Prodotto {
        
        var 
    $dati_prodotto;
        
        
    /**** METODI SET *****/
        
    function setCodice($cod){
            
    $this->$dati_prodotto['codice'] = $cod;
        }

        function 
    setMarca($cod_marca){
            
    $this->$dati_prodotto['codice_marca'] = $cod_marca
        }
        
        function 
    setNome($name){
            
    $this->$dati_prodotto['nome'] = $name;        
        }
        
        function 
    setDenominazione($den){
            
    $this->$dati_prodotto['denominazione'] = $den;
        }
        
        function 
    setCaratteristiche($car){
            
    $this->$dati_prodotto['caratteristiche'] = $car;
        }
        
        function 
    setNote($n){
            
    $this->$dati_prodotto['note'] = $n;
        }
        
        function 
    setPrezzoReale($pr){
            
    $this->$dati_prodotto['prezzo_reale'] = $pr;
        }
        
        function  
    setPrezzoScontato($ps){
            
    $this->$dati_prodotto['prezzo_scontato'] = $ps;
        }
        
        function 
    setSconto($sconto){
            
    $this->$dati_prodotto['percentuale_sconto'] = $sconto;
        }
        
        function 
    setFoto($image){
            
    $this->$dati_prodotto['foto'] = $image;
        }
        
        
        
    //usa un array associativo per settare tutti i campi del prodotto
        
    function setAll($dati){
            
    $this->$dati_prodotto $dati;        
        }
        
        
    /**** METODI GET *****/
        
    function getCodice(){
            return 
    $this->$dati_prodotto['codice'];;
        } 
    che uso in questo modo:
    Codice PHP:
        $prodotto = new Prodotto();
        
        
    $dati_prodotto['codice'] = "codice";
        
    $dati_prodotto['codice_marca'] = "codice_marca";
        
    $dati_prodotto['nome'] = "nome";
        
    $dati_prodotto['denominazione'] = "denominazione";
        
    $dati_prodotto['caratteristiche'] = "caratteristiche";
        
    $dati_prodotto['note'] = "note";
        
    $dati_prodotto['prezzo_reale'] = 21.00;
        
    $dati_prodotto['prezzo_scontato'] = 20.05;
        
    $dati_prodotto['percentuale_sconto'] = 20;
        
    $dati_prodotto['foto'] = "foto.jpg";
        
        
    $prodotto->setAll($dati_prodotto);
        
        echo 
    "codice: ".$prodotto->getCodice(); 
    il problema è che mi stampa: "codice: Array" qualcuno capisce il perchè di questo strano comportamento...mi sta facendo diventare matto...

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.