kostenloser Webspace werbefrei: lima-city


globale Variablen in Funktion

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    favoriten

    favoriten hat kostenlosen Webspace.

    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!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. 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
    $GLOBALS['Variablenname']
    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.

    Beitrag zuletzt geändert: 25.12.2011 22:28:57 von drafed-map
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!