Alle Variablen globalisieren

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

  • Alle Variablen globalisieren

    Hallo, ich habe folgendes Problem:

    Ich habe dummerweise die Tabellennamen meiner DB als Variablen und nicht als Konstanten definiert. Nun habe ich eine Funktion, die verschiedenen Selects durchführen soll. Mein Problem, ich will jetzt nicht alle Variablen in der Funktion manuell per "global" einbinden.

    Gibt es einen Befehl, mit dem ich alle benutzen Variablen zur Laufzeit auf "global" setzen kann?

    Viele Grüße,
    Andi

  • #2
    Re: Alle Variablen globalisieren

    Original geschrieben von andik2000
    Ich habe dummerweise die Tabellennamen meiner DB als Variablen und nicht als Konstanten definiert.
    Dann ändere das doch.
    Gibt es einen Befehl, mit dem ich alle benutzen Variablen zur Laufzeit auf "global" setzen kann?
    Das wäre vermutlich keine besonders intelligente Idee.

    Dass dann deine Scripte noch wie erwartet funktionieren, dürfte stark zu bezweifeln sein - weil dann globale und lokale Variablen garantiert an irgendwelchen Stellen zusammengewürfelt werden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Da ich die Tabellen-Namen schon auf zig Seiten benutze, wäre das ein Aufwand den ich mir gerne ersparen würde.
      Bei der Benutzung von lokalen Variablen innerhalb der Funktion würde ich natürlich besonders darauf achten, dass diese nur einmal vorkommen. :-)

      Ich meine mal gelesen zu haben, dass es einen Befehl gibt, mit dem man alle zur Laufzeit gesetzten Variablen ausgeben kann.

      Funktioniert dieser auch innerhalb einer Funktion und könnte man dann nicht diese in einer Schliefe alle auf global setzen? Quasi...
      PHP-Code:
      while ($vars BEFEHL_ZUM_AUSGEBEN_ALLER_VARIABLEN()){
      global 
      $vars;

      Kommentar


      • #4
        <<Da ich die Tabellen-Namen schon auf zig Seiten benutze, wäre das ein Aufwand den ich mir gerne ersparen würde.>>

        dann lass die alte Seiten so wie sie sind, und bei neuen includest du eine datei in der deine globale Variablen mit "define" declariert sind.

        und wenn du mal zeit hast, dann machst du nach und zu dasselbe mit den Altendateien
        Slava
        bituniverse.com

        Kommentar


        • #5
          So ihr Profis... :-)

          Falls es wen interessiert - ich habe mir jetzt selbst geholfen - und so funktionierts...

          PHP-Code:
          foreach($GLOBALS as $gl_x => $x_value){
                  global ${
          $gl_x};
              } 

          Natürlich lässt sich darüber Diskutieren, ob es sinvoll ist so was zu machen oder nicht. In meinem Fall ist das so zweckdienlich und schnell.

          Merci...

          Andi

          Kommentar


          • #6
            Ok Profi!
            1) meinst du jetzt, dass deine variablen jetzt in anderen functionen ohne "global" declaration sichtbar sind?
            2)
            PHP-Code:
            das
            foreach($GLOBALS as $gl_x => $x_value){
                    global ${
            $gl_x};
                }

            machen die profi so:

            extract($GLOBALS ); 
            Slava
            bituniverse.com

            Kommentar


            • #7
              @Salva:

              1. Ja, denn bei mir funktionierts innerhalb meiner funktion.

              2. "extract($GLOBALS )" sehr geil. Warum nicht gleich so - oder habe ich mich unverständlich ausgedrück?

              Ich hab Euch doch alle lieb.... :-)

              Viele Grüße,
              Andi

              Kommentar


              • #8
                warum nicht gleich so? weil es das bescheuerste ist was du machen kannst..

                Kommentar


                • #9
                  Warum ist es das Bescheuertste? Begründung???

                  Ich brauche was, was schnell geht und funktioniert. Leidet darunter die Performance, macht es das Script angreifbar oder ist es nur uncool?

                  So Aussagen wie "Das ist bescheuert" oder "So was macht man nicht" bringen mir nicht viel. Dann bitte klare Fakten, warum das unsinnig ist.

                  Für mich zählt vorerst eins - es funktioniert. Eine Sicherheitslücke kann ich da auch vorerst nicht drin erkennen.

                  Dank & Grüße,
                  Andi

                  Kommentar


                  • #10
                    nehmen wir an du hast in deiner klasse/funktion eine var, die $sql heißt

                    und machst dann extract($GLOBALS)
                    und hast in deinem eigentlichen script ausserhalb auch eine var die so heißt. Zack überschrieben udn ich wette mit dir den fehler findest so schnell nicht..

                    zudem weiß ich nicht wie sich das speichermäßig auswirkt, aber sicherlich nicht positiv..

                    Kommentar


                    • #11
                      Das ist sicher ein guter Punkt. In dem Fall muss ich bei den Variablen-Namen inerhalb der Funktion aufpassen, das ist klar.
                      In meinem Fall ist das aber überschaubar und mir geht es momentan darum, dass ich nicht auf zig Seiten alle Variablen in Konstanten ändern muss.

                      Das kann ich später immer noch machen, wenn ich dafür Zeit habe. Momentan muss es einfach erst mal nur laufen.

                      Aber ganz ehrlichen Dank für den Hinweis. Ich lerne doch noch

                      Viele Grüße,
                      Andi

                      Kommentar


                      • #12
                        mh...

                        muss erstmal schnell...
                        und
                        mach ich später...

                        Argh wie ich das hasse

                        Kommentar


                        • #13
                          OffTopic:
                          @MoRtAlAn pass ma die links in deiner sig an zu html css und js, vielleich tkommen dann ein paar weniger fragen :P

                          Kommentar


                          • #14
                            Original geschrieben von Trashar
                            OffTopic:
                            @MoRtAlAn pass ma die links in deiner sig an zu html css und js, vielleich tkommen dann ein paar weniger fragen :P
                            uups... danke

                            Kommentar


                            • #15
                              Original geschrieben von MoRtAlAn
                              muss erstmal schnell...
                              und
                              mach ich später...

                              Argh wie ich das hasse
                              So ist es aber nun mal Business. Und wenn der Termindruck da ist, muss es eben manchmal quick and dirty sein. "Aufräumen" kann man später immer noch.

                              Aber ihr habt recht - in der Zeit wo ich hier mein Vorgehen rechtfertigen muss, hätte ich auch die anderen Seiten anpassen können.

                              Kommentar

                              Lädt...
                              X