Der Martin: Globale Variablen in PHP

Beitrag lesen

Moin,

mir (PHP-Anfänger) ist nicht so ganz klar warum man in PHP normalerweise mit

define ('MEINE_GLOBALE_VAR', "wert1");

eine globale variable definieren sollte.

sollte man nicht, das ist wohl ein Missverständnis. Mit dem obigen Code-Auszugs definierst du keine Variable, sondern eine Konstante. Das ist ein wesentlicher Unterschied; in erster Linie kann man Konstanten keinen neuen Wert zuweisen, außerdem werden sie im Programm ohne vorangestelltes '$' notiert, das eine Variable kennzeichnet.

Wenn ich einfach

$meine_globale_var = "wert1";

definiere kann ich die Variable doch auch überall nutzen (muss sie nur anders notieren).

PHP verhält sich etwas eigenwillig. Globale Variablen sind nämlich in PHP nicht wirklich global; innerhalb von Funktionen sind sie nicht verfügbar (außer man macht sie innerhalb der Funktion mit dem Keyword global erneut bekannt. Für Konstanten gilt diese Einschränkung nicht.

Was ist an der ersten Version besser?

Nichts. Es sind zwei völlig unterschiedliche Dinge.

Und generell solltest du versuchen, globale Variablen soweit wie möglich zu vermeiden.

So long,
 Martin

--
Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
  (Gernot Back)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(