Dynamische Konstanten

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

  • Dynamische Konstanten

    Hallo Könner,

    ich habe ein kleines Problem mit großer Wirkung.

    Es ist möglich, Variablen dynamisch zu erstellen bzw. auszulesen, also z.B.
    PHP-Code:
    $varkette.=${'var_anfang_'.$count}; 
    Ich benötige nun dasselbe Prinzip, jedoch für Konstanten.
    PHP-Code:
    $varkette.={'const_anfang_'.$count}; 
    funktioniert leider nicht (Parse error).

    Mir ist klar, dass ich Variablen oder Arrays benutzen könnte, jedoch hätte das das Umschreiben von zig Skripten zur Folge. Darum versuche ich verzweifelt, eine Lösung für das neu entstandene Problem zu finden. Bislang jedoch ohne Erfolg.

    Danke fürs Lesen

    DasD

  • #2
    define

    Kommentar


    • #3
      define(CONST_ANFANG,"bla");
      $count = "154";
      $varkette = CONST_ANFANG.'_'.$count;
      echo $varkette;

      Oder was genau meinst du?

      Kommentar


      • #4
        eher nicht!

        Kommentar


        • #5
          Hier:
          PHP-Code:
          $varkette .= constant('const_anfang_'.$count); 
          "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

          Kommentar


          • #6
            dachte an define('müll' . $kuchen,'dreck');

            Kommentar


            • #7
              Ich sollte nicht posten, wenn ich es eilige habe - das sollte ich mir merken *G*.

              @Nezzar: Danke, das funktioniert. Und ist eigentlich auch so logisch ...

              @Uzimaster: Nee, das kann auch nicht gehen. Zumindest nicht bei meinem Problem.

              Aber ich erkläre mal, was ich meinte, falls jemand eines Tages die Suchfunktion benutzt

              Es sind ein paar Konstanten definiert, z.B.:

              PHP-Code:
              define(KONST_A_1"ob");
              define(KONST_A_2"das");
              define(KONST_A_3"wohl");
              define(KONST_A_4"geht"); 
              Eine dieser Konstanten soll benutzt werden. Welche genau, hängt aber von Werten in der DB ab. Angenommen, die Spalte "zahl" der auserkorenen Zeile in der DB enthält den Wert "3", dann soll die Konsante "KONST_A_3" verwendet werden.

              PHP-Code:
              querySELECT zahl FROM tbl_blah WHERE blah

              echo constant('KONST_A_'.$RS->zahl);
              # => Gibt also "wohl" aus 
              So würde es dann funktionieren. Und ja, natürlich wäre es dafür sinnvoller, mit Arrays zu arbeiten. Aber die Konstanten selbst werden ebenfalls dynamisch abhängig von DB-Werten definiert und das Ganze dient der Internationalisierung einer Seite. Es gibt also unzählige variable Werte, die auch noch in sich variabel sind. Würde ich mit Arrays arbeiten, würde ich schnell den Überblick im Quellcode verlieren, da alle HTML-Texte eben nur aus Variablen bestehen.

              SV_SEITENTITEL, SV_USERGESCHLECHT, SV_HOBBY, SV_KURS, .... ist wesentlich aussagekräftiger als $SV_ARR[3], $SV_ARR[87], $SV_ARR[239], $SV_ARR[21], ...

              Nochmals vielen Dank

              Kommentar


              • #8
                Sehr vorbildlich!

                SV_SEITENTITEL, SV_USERGESCHLECHT, SV_HOBBY, SV_KURS, .... ist wesentlich aussagekräftiger als $SV_ARR[3], $SV_ARR[87], $SV_ARR[239], $SV_ARR[21], ...
                An dieser Stelle werfe ich mal das wort assziatives Array in den Raum. Bin mir zwar sicher, dass du deswegen nicht deinen gesamten Code ändernt wirst, aber vielleicht hilfts für die Zukunft

                Kommentar


                • #9
                  Ja, da hast du natürlich Recht. Hätte ich gaaaaanz am Anfang daran gedacht und hätte ich nicht den Drang verspürt, endlich mal etwas mit Konstanten zu machen, ...

                  Aber dann hätte ich auch nichts gelernt, ne

                  Kommentar

                  Lädt...
                  X