Zitat Zitat von mitaki Beitrag anzeigen
Was hat der geschriebene Unterscheid zwischen $page und $_GET['page'] mit dem allgemeinen Programmierungs„stil“ zu tun?


Wenn man, wie du gesagt hast, den Wert übergibt. Eine eigene Funktion bringt aber auch hier nichts, wenn man die globale Variable direkt verwendet, was bei den Superglobalen ja möglich ist.


Ich hoffe, dass das nicht bedeutet, dass du deinen Besuchern Nummern an den Kopf wirfst.
Es geht doch darum, das diese Diskussion auf einen allgemeinen schlechten Programmierstil zurück geht. Wenn man es elegant macht, dann sind alle funktionalitäten in Modulen untergebracht und man greift nur auf sie zu, wenn sie übergeben wurden. Ganz egal, ob sie superblobal sind, oder was auch immer. Da gibt es Designregeln.

Somit ist eine Kopie per Value sowieso /immer/ dabei, da man die superglobale Variable niemals ändert. Theoretisch kann man sie ja auch per Referenz übergeben, aber das ist nur sinnvoll, wenn es um große Arrays geht: Ob du den zahlenwert, oder die Adresse kopierst, ist egal. Nur dauert die Referenzmagie in PHP ewig, da wir den recht natürlichen Mechanismus auf höhere Ebene nachgebaut in Verwendung haben. Somit ist eine Übergabe per Value sinnvoller als Referenz.

Dh. hat man in seinem Modul immer eine Kopie mit einem anderen Namen:

function foo ( $IchBinEineGlobaleVariable ) { }

Somit arbeitet man im Modul sowieso mit einem anderen Namen. Wenn man es noch eleganter macht, ist die Seite ein riesiges Objekt. Somit hat sich die ganze Geschichte sowieso erledigt.