globale Variablen in Funktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ablegen
array
aufruf
auswirkung
belieben
code
deklaration
element
folge
funktion
geltungsbereich
genannten zeile
globalen geltungsbereich
nutzen
parameter
sog
unterschied
variablen zugreifen
verwenden
weiteres verwenden
-
Hallo
ich möchte innerhalb einer Funktion auf Variablen zugreifen,
die aber nicht bei Funktionsaufruf mit den Parametern übergeben werden
Die Funktion soll MySQL Anfragen ausführen.
Die "globale" Variable ist der Tabellen-NAme und steht in einer includeten config.php
Wie ist es besser die Variablen global zu definieren,
a) vor dem Funktions-Aufruf mit define("USER_TABELLE", $tabname_user);
b) oder innerhalb der Funktion als global $tabname_user;
...... was ist besser ..... und was ist der Unterschied?
Danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Variablen, die über global bzw. define definiert sind haben einen globalen Geltungsbereich, d.h. du kannst sie auch innerhalb von Funktionen und Klassen nutzen. Der Unterschied besteht eigentlich darin, dass die Deklaration über "global" eine Variable erzeugt, "define" hingegen eine Konstante. Die Variable kannst du, wie der Name schon andeutet, nach Belieben ändern, die Konstante ist dazu gedacht, einen festen Wert zu behalten.
Du musst dir daher überlegen, welchen Nutzen die Variable haben soll. Möchtest du beispielsweise ein Zugangspasswort darin ablegen, empfiehlt sich eher eine Konstante (es sei denn, das Passwort soll sich irgendwo ändern), für einen Zähler wäre eine Variable eher zu empfehlen. -
Um das alles klar zu machen:
• Mit define() definierst du eine Konstante. Diese kann sich nicht mehr ändern. Um sie zu verwenden, schreibt man einfach ihren Namen und das ganz ohne Dollarzeichen davor, Anführungszeichen drum herum, oder sonst etwas.
• Mit global und einem nachfolgenden Variablennamen erweiterst du den Geltungsbereich der genannten nachfolgenden Variable auf die Funktion und zwar ab genau dieser Stelle. Jede Änderung an der Variablen, die innerhalb dieser Funktion und nach der genannten Zeile stattfindet, hat Auswirkungen auf die global Variable. Sofern die globale Variable nicht existiert, hat alleine das Ausweiten des Geltungsbereichs zur Folge, dass die Variable automatisch erzeugt wird. Auch ohne Definition oder weiteres Verwenden der Variable.
• Mit
greifst du auf ein Element des sog. Globals-Array zu. Jede Änderung an diesem Array-Element hat Auswirkungen auf die global Variable. Es ist auch möglich, im globalen Bereich auf diese Weise auf Variablen zuzugreifen. Ebenso ist es möglich, auf diese Weise Variablen mit Variablennamen, die es anders gar nicht geben kann, anzulegen und zu verwenden.$GLOBALS['Variablenname']
Beitrag zuletzt geändert: 25.12.2011 22:28:57 von drafed-map -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage