Alex: Operator in einer Variable.

Hallo.

Ich versuche mich gerade an einem Taschenrechner den ich mit PHP programieren wollte und hab da jetzt ein Problem.
Ich hab ein Formular erstellt und dann halt +,-,*,/ in einem Drop down menü geschrieben. Mein Problem dabei ist jetzt wenn ich jetzt diese Operatoren zum rechnen benutzte also $Zahl1 $Operator $Zahl2 funktionierst es nicht. Was muss ich tun damit die Operatoren in der Variable richtig gespeichert werden?

Danke für jede Antwort.

  1. n'abend,

    Ich versuche mich gerade an einem Taschenrechner den ich mit PHP programieren wollte und hab da jetzt ein Problem.
    Ich hab ein Formular erstellt und dann halt +,-,*,/ in einem Drop down menü geschrieben. Mein Problem dabei ist jetzt wenn ich jetzt diese Operatoren zum rechnen benutzte also $Zahl1 $Operator $Zahl2 funktionierst es nicht. Was muss ich tun damit die Operatoren in der Variable richtig gespeichert werden?

    du möchtest dir die Kontrollstruktur switch etwas genauer anschauen. Du wirst feststellen, dass du dann deine (bekannten) Operatoren folgendermaßen nutzen kannst:

    switch($operator)  
    {  
      case '+': $ergebnis = $zahl1 + $zahl2; break;  
      case '-': $ergebnis = $zahl1 - $zahl2; break;  
      case '*': $ergebnis = $zahl1 * $zahl2; break;  
      // und so weiter und so fort  
    }
    

    hierfür müssen die möglichen operatoren allerdings bekannt sein.

    eine weitere - nicht empfehlenswerte - Möglichkeit bietet eval(). Lies dir durch was hier passiert und dann entscheide selbst, ob du sowas in deinem Code haben willst, oder vielleicht lieber doch nicht...

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
    1. Moin!

      eine weitere - nicht empfehlenswerte - Möglichkeit bietet eval(). Lies dir durch was hier passiert und dann entscheide selbst, ob du sowas in deinem Code haben willst, oder vielleicht lieber doch nicht...

      eval() zerstört Webspaces! Jedenfalls wenn man nicht extrem aufpaßt und seine Benutzereingaben auf das schärfste kontrolliert!

      Ist alles schon vorgekommen hier. "Siehe Archiv".

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Tach.

        eval() zerstört Webspaces! Jedenfalls wenn man nicht extrem aufpaßt und seine Benutzereingaben auf das schärfste kontrolliert!

        Das gilt ebenfalls für include, mysql_query, exec, ... Jedenfalls wenn man nicht extrem aufpaßt und seine Benutzereingaben auf das schärfste kontrolliert!

        Es ist offensichtlich, daß man bei der Verwendung von Funktionen wie eval Vorsicht walten lassen sollte. Solche "Achtung, schrecklich!"-Rufe klingen in meinen Ohren aber zu oft so, als wäre größte Vorsicht mit Benutzereingaben nicht generell ein sehr wichtiger (und häufig vernachlässigter) Aspekt.

        --
        Once is a mistake, twice is jazz.
      2. n'abend,

        eval() zerstört Webspaces! Jedenfalls wenn man nicht extrem aufpaßt und seine Benutzereingaben auf das schärfste kontrolliert!

        Auslassung überlasse ich der Presse, die machen das ordentlich genug.
        Auch auf pöhse[tm] Funktionen sollte man hinweisen, damit der Fragende sich damit auseinandersetzt und erkennt warum er es nicht nutzen will. Ihm zu sagen, er solle es nicht benutzen, ist imho nicht das Mittel um den Fragenden zu erleuchten...

        (aber du hast natürlich recht, eval() _will man nicht_ verwenden)

        weiterhin schönen abend...

        --
        wer braucht schon großbuchstaben?
        sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|