Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [PHP object oriented] Visibilità variabili globali all'interno di metodi

    Salve ragazzi.

    Ho un problemino, circa la visibilità di variabili "esterne" all'interno dei metodi di una classe.
    Pratiamente avrei bisogno di un file vars.php, al cui interno definisco variabili, array e altro, e dovrei fare in modo che queste vengono viste all'interno dei metodi delle classi.
    Esempio:

    vars.php
    codice:
    $variabile1="ciao";
    $var2="mondo";
    $mioarray=array(...);
    classe.php
    codice:
    include_once 'vars.php';
    
    class MiaClasse(){
       function __construct(){
       }
    
       public function mioMetodo(){
          // queste variabili che sono in vars.php qui devono essere visibili.
          print $variabile1.' '.$var2;
       }
    
    }
    P.s:
    Ho notato che se ho delle define(costanti), risultano visibili senza problemi, e che io non vorrei delle define, ma variabili globali.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    le variaibli globali per quanto mi riguarda sono deprecate!

    stai usando la OOP, quindi ragiona più in quel senso.
    se vuoi usare quei valori all'interno della tua classe, puoi passarli al costruttore.
    oppure al metodo stesso.

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Ci ho già pensato, ma se ho chiesto sul forum , è perchè necessito di renderle visibili da un file esterno.

    Grazie comunque per la tua risposta.
    Con i sogni possiamo conoscere il futuro...

  4. #4
    che tipo di variabili sono e a cosa servono nel globale?

    puoi fare una classe con proprietà statici o metodi statici da usare everywhere, ma stiamo andando leggermente contro a gran parte delle regole oop
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    che tipo di variabili sono e a cosa servono nel globale?

    puoi fare una classe con proprietà statici o metodi statici da usare everywhere, ma stiamo andando leggermente contro a gran parte delle regole oop

    Immagina che ho una serie dei metodi... ci sono alcuni di questi che restituiscono dei messaggi scritti in italiano, ma vorrei prevedere la restituzione di messaggi anche in altre lingue in base ad un parametro che ho in sessione (tipo: it=italiano, en=inglese, fr=francese...) e vorrei avere una serie di file:

    it.php => dove ho i messaggi scritti in italiano
    fr.php => dove ho i messaggi scritti in francese e così via...

    Non vorrei fare in modo che le traduzioni vadano all'interno di una classe, ma all'esterno.
    Con i sogni possiamo conoscere il futuro...

  6. #6
    scusa ma le variabili globali sono largamente contro il concetto di OOP.

    potresti gestire le lingue direttamente all'interno della classe e stampare i valori.
    nei vari file chiami le variabili allo stesso modo:
    $CIAO = 'ciao'; // ITA
    $CIAO = 'hello'; // ENG

    e poi includi il file giusto a seconda del valore in sessione e stampi $CIAO.
    ma lo gestisci nella classe.

  7. #7
    e le variabili esterne a cosa servirebbero?

    se hai il dato della lingua in sessione puoi costruire il nome del file che poi carichi come template presumo..

    Codice PHP:
    $_SES_SION['user']['lang'] = 'it';

    ...

    public function 
    tuoMetodo() {
      
    $file 'messaggi.' $_SES_SION['user']['lang'] . '.view.php';
      
    // load( $file )

    ma non ho ancora decifrato bene cosa ti serve
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    No,è proprio qui il punto. Non vorrei avere un include per ogni metodo,
    vorrei una cosa del tipo:

    Codice PHP:

    //it.php:

    $messaggi=array('benvenuto'=>'Benvenuto'....);

    //en.php:

    $messaggi=array('benvenuto'=>'Welcome'....);


    //in alto alla classe:

    include_once 'lang/'.$_SESSION['user']['lang'].'.php';

    //e all'interno del metodo:

    publci function mioMetodo() {
    ...

    // qui andrò a prendere il messaggio in base al file it o en incluso in alto
    $messaggioBenvenuto=$messaggi['benvenuto'];

    Con i sogni possiamo conoscere il futuro...

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non potresti avere un metodo a cui passi l'array dei messaggi ?

    public function setMessaggi($array) {
    $this->messaggi = $array;
    }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Si, ma stò chiedendo(come ho specificato nel titolo) se è possibile vedere quella variabile(nel mio esempio $messaggi) all'interno dei metodi della classe..
    Con i sogni possiamo conoscere il futuro...

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.