Sto creando un framework di base in PHP. Devo passare i dati per la pagina corrente in diverse funzioni, consentire loro di modificarli e salvarli, e quindi passarli nuovamente alla pagina da visualizzare. Inizialmente pensavo di archiviare i dati in una variabile globale come $GLOBALS['data']
, ma sto iniziando a pensare che l'utilizzo di una soluzione globale sia una cattiva idea. Quindi sto pensando che invece inserirò una variabile statica nella classe di sistema, e accederai usando system::$data
. Quindi, la mia domanda è, quale sarebbe meglio e perché?Variabili globali vs statiche in PHP
questo:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
O questo:
class system
{
public static $data = array()
}
function data($new_var)
{
system::$data = array_merge(system::$data, $new_var);
}
data(array('page_title' => 'Home'));
echo system::$data['page_title'];
articolo impressionante –
Esiste una differenza di prestazioni? Sembra che i globali non siano efficienti come usare una variabile statica. –
@Kyle ** Non importa. ** Davvero. Probabilmente c'è una differenza, ma è così astronomicamente piccola da essere irrilevante. La tua priorità principale dovrebbe essere scrivere codice che sia gestibile, logico, leggibile e che tutte le altre cose debbano essere il codice delle cose. Le variabili globali e 'public static' sono entrambe terribili per questo scopo. – deceze