Domanda

situazione

ipotetico: Sono in esecuzione di un sito complesso in php, e io uso un sacco di variabili globali.

ho potuto memorizzare le variabili in un ambito globale esistente, dicono $_REQUEST['userInfo'], $_REQUEST['foo'] e $_REQUEST['bar'] ecc e mettere un sacco di cose diverse nel campo di applicazione richiesta (che sarebbe un uso appropriato, in quanto questi dati si riferiscono alla richiesta stessa) .

o

ho potuto continuare a utilizzare linee come global $userInfo, $foo, $bar; nella maggior parte delle mie funzioni.

c'è un calo di prestazioni, o di una differenza di utilizzo della memoria per entrambe le soluzioni?

uno è un po 'più facile a scrivere ... così c'è un best-practice guida?

È stato utile?

Soluzione

I tuoi variabili globali sono già accessibili in $GLOBALS['foo'], $GLOBALS['bar'] ecc Questo è un chiaro indicatore all'interno funzione ambito che provengono dal campo di applicazione globale che usare la parola chiave global. Non dovrebbe influire sulle prestazioni in modo significativo.

Molti vi dirà che le migliori prassi è quella di evitare le variabili globali, in primo luogo e invece passare le variabili attraverso chiamate di funzione e costruttori di oggetti.

Altri suggerimenti

Entrambi sono piuttosto male. Io suggerirei di usare un singleton, o di classi statiche.

Per quanto riguarda utilizza la memoria, non ci sarebbe alcuna differenza notevole.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top