Ich erstelle ein grundlegendes Framework in PHP. Ich muss Daten für die aktuelle Seite in verschiedene Funktionen übergeben, sie ändern und speichern lassen und sie dann an die anzuzeigende Seite zurückgeben. Ich plane ursprünglich, die Daten in einer globalen Variablen wie $GLOBALS['data']
zu speichern, aber ich fange an zu denken, dass die Verwendung eines globalen eine schlechte Idee ist. Also ich denke, dass ich stattdessen eine statische Variable in der Systemklasse setzen und mit system::$data
darauf zugreifen. Meine Frage ist also, welche wäre besser und warum?Globale vs statische Variablen in PHP
Dies:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
Oder diese:
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'];
fantastischer Artikel –
Gibt es einen Leistungsunterschied? Es scheint, dass Globals nicht so effizient sind wie eine statische Variable. –
@Kyle ** Es ist egal. ** Ernsthaft. Es ist wahrscheinlich ein Unterschied, aber es ist so astronomisch klein, um irrelevant zu sein. Ihre oberste Priorität sollte es sein, Code zu schreiben, der wartbar, logisch, lesbar und all die anderen Dinge sein sollte. Globals und 'public static'-Variablen sind für diesen Zweck beide schrecklich. – deceze