lokale statische Konstanten???

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

  • lokale statische Konstanten???

    Original geschrieben von http://www.html-world.de/program/php_3.php#konstanten
    Ein Vorteil von Konstanten ist ihre Verfügbarkeit. Im Gegensatz zu Variablen sind Konstanten immer global und brauchen in lokalen Bereichen und Namensräumen nicht extra "globalisiert" werden.
    Für mich ist das, jedenfalls im Moment, aber eher von Nachteil. Gibt es bei PHP5 eine Möglichkeit innerhalb einer Funktion eine lokale Konstante zu erzeugen? Es wäre auch wunderbar, wenn sich diese auch noch wie eine statische Variable verhalten würde, also nicht bei jedem Funktionsaufruf neu definiert würde.

    Im Moment mache ich es mit statischen Variablen und es geht auch alles Prima, ABER um mich vor mir selbst zu schützen wären mir da Konstanten doch lieber...


    Grüße,


    KaptinKaos

  • #2
    Nein das ist nicht möglich. Bei PHP5 gibt es klassenkonstanten, aber lokale Konstanten gibt es nicht.

    Wenn sich das ganze wie eine statische Variable (!) verhalten soll, wofür dann eine Konstante? Programmier einfach sauber dann hast du das Problem nicht ;-)
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Eigentlich ja nicht Variable, mir ging es eher um das static...

      Kommentar


      • #4
        Eine static const ist irgendwie sinnlos, weil die Konstante ihren Wert nicht ändern kann und immer den gleichen Wert während der Runtime hat (konstant halt).
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Ja, das ist mir ja schon klar.
          Aber Konstanten werden mit der Funktion define() angelegt. Wenn ich dies innerhalb einer Funktion mache wird dies jedesmal beim Funktionsaufruf geschehen genauso wie bei "normalen" Variablen. Static Variablen werden nur beim ersten Funktionsaufruf angelegt und nicht bei jedem weiteren Funktionsaufruf. Das gleiche hätte ich eben auch gerne bei Konstanten, deshalb kam ich auf static Konstanten.

          Hoffe, dies ist einigermassen verständlich formuliert.


          Naja, da ich es bisher noch nie vermisst habe und auch bei meinem jetzigen "Problem" auch gut ohne diese Möglichkeit auskomme werde ich es in Zukunft wohl auch nicht vermissen...


          Grüße,


          KaptinKaos

          Kommentar


          • #6
            PHP-Code:
            if (!defined('const')) define('const''value'); 
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              Vielen Dank Coragon Rivito,


              hab das mit dem "defined()" noch selber irgendwo gelesen. Mir kam aber irgendwie nicht in den Sinn das so zu verwenden... Naja war spät gestern


              Grüße,


              KaptinKaos

              Kommentar

              Lädt...
              X