[Variablen] Variable in Variable

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

  • [Variablen] Variable in Variable

    hi,

    ich beiss mir gerade die zähne an einem problem(chen) aus.
    ich habe eine konfigdatei, in der ich einen text mit einer variablen definiert habe:

    konfig.php:
    $USER = "otto" ;
    $text = "der benutzer $USER ist hier" ;

    in einer weiteren datei versuche ich die variable $text zur bearbeitung in einer textarea zur verfügung zu stellen:

    test.php:
    echo "<textarea>" ;
    echo $text ;
    echo "</textarea>" ;

    jetzt möchte ich in der textarea den variablennamen $USER sehen, wie bekomme ich das hin???
    ich habe folgendes probiert

    test.php:
    function ausgabe()
    {
    $USER = "\$USER" ;
    echo $text ;
    }
    echo "<textarea>" ;
    ausgabe() ;
    echo "</textarea>" ;

    in der hoffnung, dass der geänderte kontext die var anzeigt - fehlanzeige

    ich hoffe es kann mir jemand helfen...
    Zuletzt geändert von brizzlbrazzl; 10.07.2005, 18:07.

  • #2
    hab nichts verstanden. benutze bitte die php-tags.
    du kennst den unterschied zwischen:
    PHP-Code:
    $foo "bar";
    echo 
    $foo;
    //und
    echo '$foo'
    ?

    Kommentar


    • #3
      ist da ein unterschied???

      du hast nix verstanden, ok also nochmal. ich habe die variable $text in der ich einen text plus eine andere variable stehen habe (siehe code konfig.php)

      wenn ich echo $text mache kommt dabei
      der benutzer otto ist hier
      ich möchte aber
      der benutzer [COLOR=crimson]$USER[/COLOR] ist hier
      ausgegeben haben.
      wie sage ich also bei echo, dass er $USER nicht durch "otto" ersetzen soll?

      Kommentar


      • #4
        Hat er eh hingeschrieben:
        PHP-Code:
        echo '$foo'
        Merke: Es gibt einen Unterschied zwischen ' und "

        BTW:
        Es gibt noch eine Möglichkeit (eigentlich gibts noch tausende, aber sag dir jetzt mal eine):
        PHP-Code:
         $USER "otto" ;
        $text "der benutzer \$USER ist hier" ;
        // oder: $text = 'der benuter $USER ist hier'; 
        Und bitte verwende die vom Board bereitgestellten [ PHP ] tags - dafür sind sie ja da....
        [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

        Kommentar


        • #5
          jupp, hab den Unterschied rausgefunden, Danke - das löst aber leider nicht mein Problem...

          Kommentar


          • #6
            http://de.php.net/manual/de/language....syntax.single

            doch, eigentlich schon.

            Kommentar


            • #7
              ok, mit folgendem code koennte ich es lösen:

              $USER = "admin" ;
              $string = '$USER ist hier' ;

              echo $string;

              gibt $USER ist hier aus

              eval ("\$str = \"$string\";");
              echo $str ;

              gibt admin ist hier aus.

              leider muss ich dazu meine ganzen aufrufe abaendern, d.h. ueberall wo ich $string benutze, muss ich vorher den eval(..) teil einbauen.
              aber wenn es nicht anders geht...

              vielen dank fuer die hilfe

              Kommentar


              • #8
                Original geschrieben von brizzlbrazzl
                leider muss ich dazu meine ganzen aufrufe abaendern, d.h. ueberall wo ich $string benutze, muss ich vorher den eval(..) teil einbauen.
                aber wenn es nicht anders geht...
                Was lernt man daraus? Vor dem Coden denken - nicht später...

                Und wenn man sich nicht sicher ist, wie es funktionieren könnte oder wie es am besten geht, einfach etwas vom Projekt unabhängiges programmieren und anhand diesem weiterschauen...
                [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                Kommentar


                • #9
                  @tomstig
                  "Vor dem Coden denken - nicht später"

                  logisch! das war kein sonderlich hilfreicher spruch auf den ich gerne verzichten kann. wer weiss denn im voraus (bei mir waren von der ersten implementierung bis zu dieser anderung immerhin 18 monate vergangen) was so alles auf einen zukommt??? damals war an diese änderung nicht zu denken...

                  und mal ehrlich, hättest du den code eher umständlich über die ' oder über die einfacheren (da eval nicht benötigt) " realisiert?

                  Kommentar


                  • #10
                    Original geschrieben von brizzlbrazzl
                    ok, mit folgendem code koennte ich es lösen:

                    $USER = "admin" ;
                    $string = '$USER ist hier' ;

                    echo $string;

                    gibt $USER ist hier aus

                    eval ("\$str = \"$string\";");
                    echo $str ;

                    gibt admin ist hier aus.

                    leider muss ich dazu meine ganzen aufrufe abaendern, d.h. ueberall wo ich $string benutze, muss ich vorher den eval(..) teil einbauen.
                    aber wenn es nicht anders geht...

                    vielen dank fuer die hilfe
                    mag ja nich meckern...
                    aber:
                    wenn

                    PHP-Code:
                    echo '$user ist hier'
                    folgende ausgabe erzielt:
                    $user ist hier

                    sollte dir einleuchten, dass durch das zeichen ' irgendetwas mit dem string und der darin enthaltenen variabel passiert, oder?

                    also mir leuchtet das zumindest ein.
                    folglich muss dir auch klar sein, dass die verwendung des zeichens ' in verbindung mit variablen im string, nicht angebracht ist.
                    desweiterne wurden oben schon hinweise gebracht, dass es zwischen ' und " einen unterschied gibt.
                    hättest du diesen wirklich verstandne, wüsstest du wo dein problem in der source liegt.

                    ferner gehe ich davon aus, dass du die auswirkungen oder viel mehr die funktionalität von eval() überhaupt nicht kennst.

                    bedenke immer... eval is evil

                    überdenke doch noch einmal deine source und führe dir mal in einem php-tutorial die themen:
                    => variablen
                    => strings und verwendung von zeichenketten

                    oder einfach nur deklarationen durch

                    gruß
                    Q

                    Kommentar


                    • #11
                      Original geschrieben von brizzlbrazzl
                      @tomstig
                      "Vor dem Coden denken - nicht später"

                      logisch! das war kein sonderlich hilfreicher spruch auf den ich gerne verzichten kann. wer weiss denn im voraus (bei mir waren von der ersten implementierung bis zu dieser anderung immerhin 18 monate vergangen) was so alles auf einen zukommt??? damals war an diese änderung nicht zu denken...

                      und mal ehrlich, hättest du den code eher umständlich über die ' oder über die einfacheren (da eval nicht benötigt) " realisiert?
                      Da ich überhaupt nicht weiß, worum es bei deinem Code geht, kann ich dir auch nicht sagen, ob ich es auch so gelöst hätte. Aber von dem was ich mitbekommen hab, weiß ich, dass ichs anders gemacht hätte:
                      Ich hätte nicht eine Variable in den String geschrieben, sondern mit "Platzhaltern", z.B. [>user<] oder {user} und hätte das dann mit str_replace o.ä. geändert.
                      [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                      Kommentar

                      Lädt...
                      X