PHP - prestazioni e problema di memoria con le variabili globali
-
27-10-2019 - |
Domanda
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?
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.