Rato Micefarmer: Konstanten in einem globalem Array?

Hi

Im Array $GLOBALS werden ja alle vorhandenen Variablen abgelegt.
Werden die definierten Konstanten auch in einem bestimmten Array abgelegt?

mfg
Rato

--
§§§
Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
§§§
  1. Im Array $GLOBALS werden ja alle vorhandenen Variablen abgelegt.
    Werden die definierten Konstanten auch in einem bestimmten Array abgelegt?

    In $GLOBALS werden hoffentlich nicht alle vorhandenen Variablen abgelegt und: Nein, warum sollte man das auch wollen?

    1. In $GLOBALS werden hoffentlich nicht alle vorhandenen Variablen abgelegt und: Nein, warum sollte man das auch wollen?

      Vielleicht habe ich mich etwas schlecht ausgedrückt. Ich meine nur, dass man über den Array $GLOBALS auf alle Variablen zugreifen kann, ob die sich technisch gesehen in diesem Array befinden oder nur dorthin kopiert werden oder was auch immer, ist mir in diesem Posting erstmals einerlei. Wichtiger ist mir jetzt erstmals die Frage, die ich darunter gestellt habe.

      mfg
      Rato

      --
      §§§
      Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
      §§§
      1. Ich grüsse den Cosmos,

        Wichtiger ist mir jetzt erstmals die Frage, die ich darunter gestellt habe.

        Die Frage macht aber wenig Sinn, da Konstanten sowieso global sind. Wlchen Sinn sollte es also haben, wenn diese nochmal in einem Array stehen?

        Möge das "Self" mit euch sein

        --
        Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
        ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
        1. Hello,

          Die Frage macht aber wenig Sinn, da Konstanten sowieso global sind. Wlchen Sinn sollte es also haben, wenn diese nochmal in einem Array stehen?

          na ja, einfallen würde mir da schon was. Wie listest du beispielsweise alle bekannten Konstanten auf? Wie prüfst du, ob ein eingegebener Wert einer Konstanten entspricht?

          MfG
          Rouven

          --
          -------------------
          When the only tool you've got is a hammer, all problems start to look like nails.
          1. Ich grüsse den Cosmos,

            na ja, einfallen würde mir da schon was. Wie listest du beispielsweise alle bekannten Konstanten auf?

            Brauche ich nicht. Wenn ich Konstanten verwende, sind die dokumentiert. Und die, die dynamich erzeugt werden, haben eine exakt definierte Struktur, die ebenfalls dokumentiert ist.
            Wenn es nötig wird, eine Liste von Konstanten anzuzeigen, ist das IMO eine fehlkonzeption.

            Wie prüfst du, ob ein eingegebener Wert einer Konstanten entspricht?

            if(KONSTANTE == $variable)

            Wenn ich mehrere Konstanten prüfen will, kann ich

            a. die Kosntanten in ein Array schreiben (wieder ein Konzeptfehler, da ich dafür von Anfang an ein Array mit Werten nutze)
            b. per switch-case alle gewünschten Konstanten prüfen.

            Seh da nicht wirklich ein Problem.

            Möge das "Self" mit euch sein

            --
            Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
            ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
            1. Hello,

              na ja, einfallen würde mir da schon was. Wie listest du beispielsweise alle bekannten Konstanten auf?
              Brauche ich nicht. Wenn ich Konstanten verwende, sind die dokumentiert. Und die, die dynamich erzeugt werden, haben eine exakt definierte Struktur, die ebenfalls dokumentiert ist.
              Wenn es nötig wird, eine Liste von Konstanten anzuzeigen, ist das IMO eine fehlkonzeption.

              na ja, außer du baust einen Editor mit Auto-Completion...

              Wie prüfst du, ob ein eingegebener Wert einer Konstanten entspricht?
              if(KONSTANTE == $variable)

              das war schlecht beschrieben, fiel mir direkt danach auch schon auf. Ich meinte eher die Richtung: kann ich sicherstellen, dass der Wert "123" keiner existierenden Konstante entspricht - war ein theoretisches Szenario.

              MfG
              Rouven

              --
              -------------------
              Death is nature's way of telling you to slow down.
              1. Ich grüsse den Cosmos,

                na ja, außer du baust einen Editor mit Auto-Completion...

                Naja, ob es sinnvoll ist, einen Editor auf PHP-Basis zu schreiben, der ein zeitfressendes Feature, wie autokompletierung besitzt, soll jeder für sich selbst etnscheiden ;)

                das war schlecht beschrieben, fiel mir direkt danach auch schon auf. Ich meinte eher die Richtung: kann ich sicherstellen, dass der Wert "123" keiner existierenden Konstante entspricht - war ein theoretisches Szenario.

                Einmal kann ich mit defined() prüfen, ob eine entsprechende Konstante existiert, andererseits sind wir dabei wieder bei einer Fehlkonzeption. Bei eigenen Scripts sollte schon bekannt sein, welche Kosntanten verwendet werden, bei fremden Scripts hat der Autor das zu dokumentieren.

                Möge das "Self" mit euch sein

                --
                Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
                ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
        2. Die Frage macht aber wenig Sinn, da Konstanten sowieso global sind.

          Das hatte ich Dödel doch tatsächlich vergessen.

          Ich muss mein Problem wohl ausführlicher beschreiben:

          Man will auf eine bestimmte Variable zugreifen, man weiß jedoch beim Programmieren nicht, welche das sein wird. In einer anderen Variable wird aber der Name der gesuchten Variable gespeichert. Man kann somit auf die gewünschte Variable zugreifen, indem man '${$variable_mit_namen_der_anderen_variable}' oder '$GLOBALS[$variable_mit_namen_der_anderen_variable]' schreibt.
          Wie kann man das machen, wenn es nicht um eine Variable, sondern um eine Konstante geht? '{$variable_mit_namen_der_anderen_variable}' funktioniert (natürlich) nicht.
          Kann mir hier jemand weiterhelfen?

          mfg
          Rato

          --
          §§§
          Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
          §§§
          1. echo $begrüßung;

            Man will auf eine bestimmte Variable zugreifen, man weiß jedoch beim Programmieren nicht, welche das sein wird. In einer anderen Variable wird aber der Name der gesuchten Variable gespeichert.

            Dieses Problem lässt sich in den meisten Fällen durch Ändern des Konzepts beseitigen. Hoffentlich ergibt sich der zu suchende Name nicht auch noch durch eine ungeprüfte Benutzereingabe, denn dann könnte man sich vielleicht auch noch alles mögliche anzeigen lassen, z.B. Datenbankverbindungsdaten.

            echo "$verabschiedung $name";

    2. echo $begrüßung;

      Im Array $GLOBALS werden ja alle vorhandenen Variablen abgelegt.
      Werden die definierten Konstanten auch in einem bestimmten Array abgelegt?
      In $GLOBALS werden hoffentlich nicht alle vorhandenen Variablen abgelegt

      Nicht alle, nur die globalen, denn das ist die Aufgabe dieses Arrays.

      und: Nein, warum sollte man das auch wollen?

      Wenn man sich selbst keinen Anwendungsfall vorstellen kann, sollte man nicht auch noch pauschal allen anderen die Anwendungsfälle absprechen.

      PHP ist eine Sprache, die Variablen auf Zuruf anlegt. Man sollte deshalb auch irgendwo nachsehen können, was es alles gibt. Alle vier großen Scriptsprachen - Perl, PHP, Python, Ruby - haben solch eine Liste, die man als Scriptautor abfragen kann.

      echo "$verabschiedung $name";

  2. Hello,

    Konstanten lassen sich auch über eine Arraystruktur abfragen.
    Die erzeugst Du Dir mittels Aufruf der Funktionn

    http://www.php.net/manual/en/function.get-defined-constants.php

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Danke, hat sich somit erledigt.

      mfg
      Rato

      --
      §§§
      Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
      §§§