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

    Problema attributo private

    Ciao, non riesco a capire perchè tra gli attributi private che ho definito nella mia classe, questo non viene visto da una funzione private e da una public che devono utilizzarlo.

    l'attributo private è un array e l'errore che ricevo è :

    Notice: Undefined variable: mesi

    L'array che ho definito è semplicemente un array associativo con tutti i mesi dell'anno.
    Codice PHP:
    private $mesi=array(1=>'Gennaio',2=>'Febbraio',3=>'Marzo',4=>'Aprile',5=>'Maggio',6=>'Giugno',7=>'Luglio',8=>'Agosto',9=>'Settembre',10=>'Ottobre',11=>'Novembre',12=>'Dicembre'); 
    Mi potete dare qualche idea per poter provare a risolvere ? Sto diventando matto anche perchè gli altri attributi private della classe funzionano benissimo...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Dovresti scrivere anche la parte di codice dove lo usi, così non ti si può rispondere se non tirando ad indovinare.

  3. #3
    Eccolo, ho omesso tutto il corpo di codice del controllo perchè li non è richiamato.

    private function check_data(){
    //codice per controllo semantico della data
    $this->setMonth($mesi[$this->getMonth()]);
    //attributo set scrivo la stringa del mese corrispondente
    }//end method

    Lo stesso attributo, se definito all'interno del metodo, funziona benissimo.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    L'array $mesi non glielo passi alla funzione check_data(), per questo non lo vede.

  5. #5
    Ma se devo utilizzare l'array $mesi in più metodi, devo passarlo ad ognuno di loro ?
    Quindi non è necessario impostarlo come private all'inizio della classe, sbaglio?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    O lo passi come parametro alle varie funzioni, oppure ci accedi con $this->mesi.

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.