global auf alle Vars anwenden?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • global auf alle Vars anwenden?

    Hey,
    wollte mal fragen, ob es (ausser $GLOBALS) irgendwie möglich ist, ALLE öffentlich gesetzten Variablen per global in eine Funktion zu übernehmen?


    lg

    Fabian

  • #2
    Hi,

    ich seh den Sinn darin nicht, aber egal.
    Zudem ist das unsauber programmiert, eine mögliche Fehlerquelle (überschreibung von bereits gesetzten und benötigten Variablen), sowie eine mögliche Sicherheitslücke.

    Du solltest alle Variablen mit dem Aufruf übergeben oder die benötigten per global in der Funktion definieren.

    Auch eine Möglichkeit wäre z.b. der Aufruf von func_get_args in der Funktion selbst.
    So kannst du beliebig viele Variablen übergeben, ohne dass sie vorher alle für die Funktion definiert wurden.


    gruß
    Piremilok

    Comment


    • #3
      Hey,
      ja, weiß das das unsauber ist und so. Aber wäre wirklich wichtig :/

      Comment


      • #4
        Aber wäre wirklich wichtig :/
        Nein!
        Aber wofür soll das gut sein?
        PHP Code:
        function dumme_idee()
        {
          
        export($GLOBALS);
          
        // hier hastese dann local

        *ungetestet*
        Wir werden alle sterben

        Comment


        • #5

          Comment


          • #6
            Combie meint extract($GLOBALS). Damit kannst du alle Variablen in den Scope des Aufrufs importieren. Aber afaik bekommst du Kopien davon. Für Änderungen am Original mußt du direkt auf $GLOBALS arbeiten.

            Erzähl doch mal bitte was du vorhast.

            Comment


            • #7
              Combie meint extract($GLOBALS)
              Huch, natürlich meinte ich das !!
              Das kommt davon, wenn man nicht testet....
              Wir werden alle sterben

              Comment


              • #8
                Es wird tatsächlich eine Kopie erstellt. Um Referenzen auf den Original-Eintrag im Array zu erhalten, kann jedoch als zweiter Parameter für extract() die Konstante "EXTR_REFS" übergeben werden.

                Original geschrieben von onemorenerd
                [...]

                Erzähl doch mal bitte was du vorhast.
                Das wäre wohl am Sinnvollsten.

                Comment

                Working...
                X