Variable Konstantennamen

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Jakob, 30.09.2006.

  1. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    Hallo,

    auf Variablen mit variablen Namen kann ich ja bekanntermaßen mit $$name zugreifen. (ist $name=1, so wird die Variable $1 genutzt)

    Wie klappt das mit Konstanten? Bekomm's nicht hin.
     
  2. kasumix

    kasumix MacUser Mitglied

    Beiträge:
    54
    Zustimmungen:
    0
    MacUser seit:
    04.06.2006
    Hallo,

    Wenn du in PHP konstanten definieren willst musst du das mit einem "define()" machen. Zum Beispiel:
    define("LINK","http://www.google.ch");
    dannach kannst du OHNE $ auf diese Konstante zugreiffen.
    echo LINK;

    Gruss

    Kasumix
     
  3. koli.bri

    koli.bri Gast

    Mal ganz davon abgesehen, dass ich den sinn solcher Operationen nie verstanden habe, da es auch Arrays gibt, gibt es meine ich, keine von Haus aus Möglichkeit, um Variabel auf Konstanten zuzugreifen.

    Abhilfe könnte da aber eine Funktioin schaffen, welche den Variablen Namen mit eval() "simuliert".

    also in etwa so:
    PHP:

    function usevariableconst($constname){

    $tmp "$var = ".$constname;

    eval(
    $tmp);

    return 
    $var;

    }


    Ist aber nicht getestet :)


    gruß
    Lukas
     
  4. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    @kasumix: Es geht um Konstanten mit variablen Namen, bspw. LINK1, LINK2, LINK3 etc. Diese würde ich gerne in der Form LINK.$i aufrufen.

    @Lukas: Auch wenn mir eval immer ein bisschen suspekt ist… Das ist ne clevere Idee.

    Eben nicht. Man kann doch kein $array[LINK][1] haben, oder? Mir geht's um die Eigenschaften von Konstanten (Namensraum, Reichweite, nicht änderbar etc.)

    Habe mich erstmal für arrays entschieden.
     
  5. TerminalX

    TerminalX MacUser Mitglied

    Beiträge:
    1.800
    Zustimmungen:
    108
    MacUser seit:
    12.01.2004
    Bietet PHP nur normale Variablen und Arrays? Bei Perl könnte man Hashes nehmen. Gibt es sowas auch für PHP?
     
  6. Sovok

    Sovok MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    MacUser seit:
    10.06.2005
    Klar, PHP-Arrays sind recht mächtig.

    PHP:
    $arr = array(123"bla" => "ble""key" => "value");
    Überdenk das mit den Konstanten am besten nochmal, denn für sowas wie "LINK1, LINK2, LINK3 etc." sind Arrays genau das richtige. Zudem viel schneller als das eval()-Gehampel :) (aber ne gute Idee)

    -> http://www.php.net/array
     
  7. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    Hi Sovok,

    ja danke. Das Ding ist halt, dass es eigentlich wirklich Konstanten sind (von den Werten her) und somit das die richtige Art wäre. Noch dazu ist Unveränderlichkeit in ner Sprache wie PHP, die ohne zu zögern Array_of_strings->Object->Int mitmacht, manchmal wirklich sehr hilfreich.

    Aber hab mich schon damit abgefunden, dass es nur mit eval geht und nutze deshalb arrays.
     
Die Seite wird geladen...