Ankündigung

Einklappen
Keine Ankündigung bisher.

Übung - Rechnen mit PHP ????

Einklappen

Neue Werbung 2019

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

  • Übung - Rechnen mit PHP ????

    Hallo, ich habe gerade angefangen PHP zu lernen und komme da gerade nicht weiter. Ich wollte grade das Rechnen mit PHP lernen aber ich bekomme immer ein Parse error ausgepuckt und weiß nich warum. Könnt ihr mir helfen?

    Hier mein Code:
    PHP-Code:
    <html>
    <head>
    <title>Rechnen mit PHP</title>
    </head>
    <body>
    <?php
    //Eingabe
    $zahl1 20;
    $zahl2 8;
    //Verarbeitung
    $add $zahl1 $zahl2
    $sub 
    $zahl1 $zahl2
    $div 
    $zahl1 $zahl2
    $mul 
    $zahl1 $zahl2
    //Ausgabe
    echo "Rechnen mit PHP";echo "<br><br>";
    echo 
    $zahl1; echo "+"; echo $zahl2; echo "="; echo $add; echo "<br>";
    echo 
    $zahl1; echo "-"; echo $zahl2; echo "="; echo $sub; echo "<br>";
    echo 
    $zahl1; echo "/"; echo $zahl2; echo "="; echo $div; echo "<br>";
    echo 
    $zahl1; echo "*"; echo $zahl2; echo "="; echo $mul;
    ?>
    </body>
    </html>
    [IMG]http://net301.de/autobahn.jpg[/IMG]


  • #2
    Hallo

    nach
    Code:
    $add = $zahl1 + $zahl2
    $sub = $zahl1 - $zahl2
    $div = $zahl1 / $zahl2
    $mul = $zahl1 * $zahl2
    fehlt hinter jeder Zeile ein Semikolon!
    Ansonsten bitte schreiben auf welcher Zeile der Parse Error entsteht ...
    Gruß Flo
    "Je größer die Insel des Wissens, desto länger die Küste der Verzweiflung!"

    Kommentar


    • #3
      Ok habs, habe die ";" vergessen ^^
      Naja Anfängerfehler

      Oh da wa einer schneller aber trotzdem Danke ^^
      [IMG]http://net301.de/autobahn.jpg[/IMG]

      Kommentar


      • #4
        Außerdem kannst du die Ausgabe noch deutlich vereinfachen. Du kannst zwei Strings oder Variablen mit . zusammenfügen.

        PHP-Code:
        <?php
        // deine Version
        echo $zahl1; echo "+"; echo $zahl2; echo "="; echo $add; echo "<br>";

        // einfachere Version
        echo $zahl1 '+' $zahl2 '=' $add '<br />';
        Viel Spass weiterhin

        Kommentar


        • #5
          Was Flor1an dir damit sagen will,belies dich in Stringverkettungen damit kannst du alles bedeutend kürzer und vereinfachter darstellen!

          Der . ist ein Stringverkettungsoperator!
          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
          http://www.lit-web.de

          Kommentar


          • #6
            ahh also denn so:

            PHP-Code:
            <html>
            <head>
            </head>
            <?php
            //Eingabe
            $zahl1 20;
            $zahl2 8;
            //Verarbeitung
            $add $zahl1 $zahl2;
            $sub $zahl1 $zahl2;
            $div $zahl1 $zahl2;
            $mul $zahl1 $zahl2;
            //Ausgabe
            echo "Rechnen mit PHP <br><br>",$zahl1," + ",$zahl2," = ",$add,"<br>",$zahl1," - ",$zahl2," = ",$sub,"<br>",$zahl1," / ",$zahl2," = ",$div,"<br>",$zahl1," * ",$zahl2," = ",$mul;
            ?>
            <body>
            </body>
            </html>
            [IMG]http://net301.de/autobahn.jpg[/IMG]

            Kommentar


            • #7
              Ja so kannst du das auch machen. Komma funktioniert ebenfalls als Verbindungsstück, ist sogar nach der Performance her besser. Aber dass ist egal. Gewöhnlich verwendet man Punkt anstatt Komma.

              Die Ausgabe kannst du aber auch etwas schöner darstellen:
              PHP-Code:
              <?php
              echo "Rechnen mit PHP <br><br>",
                  
              $zahl1," + ",$zahl2," = ",$add,"<br>",
                  
              $zahl1," - ",$zahl2," = ",$sub,"<br>",
                  
              $zahl1," / ",$zahl2," = ",$div,"<br>",
                  
              $zahl1," * ",$zahl2," = ",$mul;
              Du kannst da eben Zeilenumbrüche einbauen. Das lässt den Text gleich besser lesen!

              Kommentar


              • #8
                ok danke =)
                [IMG]http://net301.de/autobahn.jpg[/IMG]

                Kommentar


                • #9
                  Dein Quelltext ist jetzt zwar richtig aber der Übersichtlichkeit halber ist eine Quelltext-Zeile je Operation sinnvoll.
                  Wie Flor1an schon geschrieben hat:
                  Code:
                  echo $zahl1 . '+' . $zahl2 . '=' . $add . '<br />';
                  und das für Addition, Subtraktion, Multiplikation und Division also:
                  Code:
                  echo $zahl1 . '+' . $zahl2 . '=' . $add . '<br />';
                  echo $zahl1 . '-' . $zahl2 . '=' . $sub . '<br />';
                  echo $zahl1 . '/' . $zahl2 . '=' . $div . '<br />';
                  echo $zahl1 . '*' . $zahl2 . '=' . $mul . '<br />';
                  lg Flo

                  ***Da war jemand schneller***
                  "Je größer die Insel des Wissens, desto länger die Küste der Verzweiflung!"

                  Kommentar


                  • #10
                    @Flor1an: Gibt es eine sinnvolle Begründung warum ein Komma die bessere Performance mit sich bringt? Wusste ich bis jetzt auch nicht!
                    "Je größer die Insel des Wissens, desto länger die Küste der Verzweiflung!"

                    Kommentar


                    • #11
                      Ähm erstmal muss ich mich nochmal verbessern. Komma funktioniert NUR wenn in echo genutzt!

                      Warum? Bei echo kann man mehrere Argumente angeben, diese Argumente werden per Komma getrennt. Bedeutet echo gibt alle Argumente einzeln hintereinander aus. Komma verknüpft zwei Strings/Variablen nicht!

                      Der Punkt kann überall verwendet werden um zwei Strings/Variablen verknüpft zu werden. Dies dürfte bei echo langsamer sein weil erst alle Strings/Variablen verknüpft werden und dann ausgegeben werden, beim Komma wird direkt ausgegeben.

                      Kommentar


                      • #12
                        Ähm erstmal muss ich mich nochmal verbessern. Komma funktioniert NUR wenn in echo genutzt!
                        -> War ich davon ausgegangen. =)

                        [...] dürfte bei echo langsamer sein weil erst alle Strings/Variablen verknüpft werden und dann ausgegeben werden, beim Komma wird direkt ausgegeben.
                        -> Klingt logisch

                        Gerade mal nach der Performance für verschiedene Schreibweisen in Scripts gesucht und dabei auf folgenden Artikel gestoßen in Zusammenhang mit and/&& bzw. or/|| : www.entwicklerblog.net
                        "Je größer die Insel des Wissens, desto länger die Küste der Verzweiflung!"

                        Kommentar


                        • #13
                          Deine URL Tags sind nicht richtig. Entweder [ url]http://www.xyz.de[ /url] oder eine Beschreibung.

                          Bei den logischen Operatoren gibt es glaub ich einen unterschied zwischen &&/AND bzw. ||/OR.

                          Soweit ich weiß hört && schon auf zu testen wenn die erste Bedingung falsch ist, AND testet aber beides.

                          PHP-Code:
                          <?php
                          $a 
                          1;
                          $b 2;

                          // hier hört der Vergleich schon nach $a == 0 auf da ab dort an der Vergleich nie mehr stimmen kann
                          if ($a == && $b == 0) ...

                          // obwohl der Vergleich nie mehr richtig werden kann da $a != 0, prüft er hier trotzdem noch $b!
                          if ($a == AND $b == 0) ...
                          Das wäre auch die Erklärung für die Performance. Meiner Meinung nach sollte die Performance hier vernachlässigt werden. Ob ich da jetzt 1% langsamer bin oder net ist egal. Wichtig ist dass man es schön lesen kann, daher nutze ich immer OR/AND.

                          Der einzigste Grund wo man wirklich drauf achten sollte wenn in der Abfrage eine Funktion aufgerufen wird die sehr viel Zeit braucht. Mit z.B. vielen DB Abfragen.

                          if ($a == 0 && tu_was_in_der_DB() == true)

                          Hier könnte man den kompletten Funktionsaufruf sparen wenn $a != 0 ist ... mit AND würde noch die Funktion ausgeführt werden.

                          Kommentar


                          • #14
                            Kann machen was ich will ... der Link wird immer wieder falsch umgeändert!

                            Ich finde die Benchmarks super!!! Sicherlich sind die Zeiten verschwindend gering (schließlich wurden die Tests mit 10.000 Wiederholungen durchgeführt) aber bei Verwendung des "Bitshifts" z.B. spart man 21% je Rechenschritt im Verhältnis zu der normalen/üblichen Rechnung .... einfach genial!
                            "Je größer die Insel des Wissens, desto länger die Küste der Verzweiflung!"

                            Kommentar


                            • #15
                              Dein URL Tag ist ja auch unvollständig. Da fehlt der schließende Tag!

                              Das mit dem Bitshift ist klar. Da Bits im Binärsystem laufen. Shiften ist übrigens eine der einfachsten Operationen die ein CPU berechnen kann, neben Addition z.B. alles andere muss aus Kombinationen von Operationen erstellt werden.
                              Multiplikation mit n Additionen, Subtraktion durch Addition des Zweierkomplements (also Subtrahend invertieren und dann noch 1 addieren).
                              Und da es so eine elementare Operation ist kann diese natürlich wahnsinnig schnell durchgeführt werden. Zwar wird PHP nur interpretiert aber die Übersetzung denke ich wird trotzdem darauf hinaus laufen.

                              Im übrigen ist das im Dezimalsystem nicht anders.

                              170 / 10 ist langsamer als 170 um eine Stelle nach rechts zu verschieben.
                              170 => 17.0 geht wesentlich schneller da du ja nich mal rechnen musst.
                              Hier basiert es aufm Dezimalsystem also 10, bei Bits auf 2 (binär). Funktioniert auch mit allen anderen Systemen. Hex zum Beispiel.

                              Kommentar

                              Lädt...
                              X