global auf alle Vars anwenden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


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

      Kommentar


      • #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

        Kommentar


        • #5

          Kommentar


          • #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.

            Kommentar


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

              Kommentar


              • #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.

                Kommentar

                Lädt...
                X