Ergebnis 1 bis 9 von 9

Thema: PHP Satzzeichen

  1. #1

    PHP Satzzeichen

    Hallo,
    kann man mir jemand sagen, woher man weiss, wann man bei PHP Simikolons setzen muss und wann nicht?
    Hatte zuerst folgenden Code, welchen ich hier von dem PHP Tutorial nachprogrammiert hatte:

    PHP-Code:
    <?php
    if($alter>18)
        { echo 
    "Volljährig!"};
    ?>
    Der war aber falsch. Es muss hinter dem echo ein Simikolon und nicht hinter das if. Ja aber warum nicht hinter das if, bzw die } Klammer?
    Das macht doch keinen Sinn? Mal kommt eins hin und mal nicht?
    Bitte um hilfe!

  2. #2
    Keine Angst, das wird ziemlich schnell einen Sin ergeben, wenn du erstmal ein bisschen vertrauter mit der Sprache bist. ^^ Ist auch in praktisch allen anderen Sprachen mit C-ähnlicher Syntax so (es sei denn, man braucht gar keine Semikolons, wie in Javascript).

    Hm, wie erkläre ich das am besten? Also grundsätzlich kann man wohl sagen, es gibt zwei Arten von Statements – einfache, einzelne Statements (wie z.B. 'echo "Volljährig!";'), und zusammengesetzte Statements bzw. Statementblöcke (Statements, die weitere Statements enthalten, z.B. 'if (Bedingung) Statement').
    Einzelne Statements werden immer mit Semikolon abgeschlossen, zusammengesetzte und Blöcke nie.
    Also z.B.:
    PHP-Code:
    echo "Volljährig!"
    ist ein Statement.
    PHP-Code:
    {
      echo 
    "Volljährig";
      echo 
    "!";

    ist ein Statement (nämlich ein Block, der weitere Statements enthält.
    PHP-Code:
    if ($alter >= 18) {
      echo 
    "Volljährig";
      echo 
    "!";

    ist ebenfalls ein Statement (ein If-Statement mit dem Block als Then-Zweig). Genauso könnte man auch schreiben:
    PHP-Code:
    if ($alter >= 18)
      echo 
    "Volljährig!"
    In dem Fall besteht der Then-Zweig aus einem einzelnen Statement statt einem Block, der Effekt ist aber der Gleiche. (Allerdings ist das fehleranfälliger, sollte man also gerade am Anfang besser vermeiden.)
    Nach Funktionsdefinitionen steht z.B. auch nie ein Semikolon:
    PHP-Code:
    function altersAusgabe($alter) {
      if (
    $alter >= 18) {
        echo 
    "Volljährig";
        echo 
    "!";
      }
      else {
        echo 
    "Nicht volljährig!";
      }

    Ich hoffe, das ist einigermaßen klar so. Ich bin leider nicht so gut im Erklären. ^^"

  3. #3
    Wie der Affe schon sagte: Nur hinter Statements (Anweisungen) kommt ein Semikolon. if, while, die Klammern u.Ä. sind keine Anweisungen, sondern Kontrollstrukturen.
    PHP-Code:
    if($age 18
    wäre ja an und für sich keine Anweisung, deswegen kommt danach kein Semikolon.

    Edit: wtf, wir haben einen PHP und einen CODE=PHP vB-Code, die auch noch anders aussehen? x_X

  4. #4
    Lies dir mal folgenden Artikel durch, und such dir danach die BNF von PHP:
    http://de.wikipedia.org/wiki/Backus-Naur-Form

    Unterhaltsam und lehrreich.

  5. #5
    Zitat Zitat von Mog Beitrag anzeigen
    Lies dir mal folgenden Artikel durch, und such dir danach die BNF von PHP:
    http://de.wikipedia.org/wiki/Backus-Naur-Form

    Unterhaltsam und lehrreich.
    Mog, du spinnst.
    Jemandem, der PHP lernt, und die Grammatik nicht versteht, die (E)BNF davon an den Kopf zu werfen bringt glaube ich wenig.

  6. #6
    Wieso?
    In meiner Schule war dies auch das erste, was wir in den Grundlagen der Informatik gelehrt bekommen haben, obwohl 95% der Schüler nur wussten, wie man "Programmieren" buchstabiert.

  7. #7
    Naja, ich studiere seit drei Semestern Informatik und von ein paar privaten Recherchen über die IRC Protokollspezifikation abgesehen, ist mir die BNF noch nie begegnet. Man kann sich echt drüber streiten, ob sie nötig ist oder nicht. Für Menschen gibt es brauchbare Möglichkeiten, sowas informeller zu beschreiben und für Computer gibt es Formate, die leichter zu parsen sind. Dementsprechend ist die BNF nett, weil sie quasi Standard ist, aber das jedem Informatiker vorzusetzen, egal ob er grade eine echte Anwendung dafür hat oder nicht, halte ich für übertrieben.

    (Grundsatzdiskussion ftw! Macht ruhig weiter, ggf. kopiert das jemand das dann in den Spamthread rüber)

    Geändert von DFYX (29.01.2010 um 02:41 Uhr)

  8. #8
    Zitat Zitat von DFYX Beitrag anzeigen
    Naja, ich studiere seit drei Semestern Informatik und von ein paar privaten Recherchen über die IRC Protokollspezifikation abgesehen, ist mir die BNF noch nie begegnet. Man kann sich echt drüber streiten, ob sie nötig ist oder nicht. Für Menschen gibt es brauchbare Möglichkeiten, sowas informeller zu beschreiben und für Computer gibt es Formate, die leichter zu parsen sind. Dementsprechend ist die BNF nett, weil sie quasi Standard ist, aber das jedem Informatiker vorzusetzen, egal ob er grade eine echte Anwendung dafür hat oder nicht, halte ich für übertrieben.

    (Grundsatzdiskussion ftw! Macht ruhig weiter, ggf. kopiert das jemand das dann in den Spamthread rüber)
    Das wuerde ich so nicht einmal sagen .... ich kann z.B. erst seit dem Py fluessig schreiben, seit dem ich mir die BNF angesehen habe. Vorher fand ich jegliche Zeile Py absolut unlesbar.

    Genau so sieht man bei der BNF immer auf den ersten Blick was so geht: Sie bietet eine perfekte Uebersicht ueber eine Sprache. Da kann kein Index jemals mit halten.

    BNFs sind leicht zu lesen und auf einen Blick zu durchschauen. Kein Text liest sich so schnell, wie eine Hand von Regeln.^^"

  9. #9
    Zitat Zitat von Mog Beitrag anzeigen
    BNFs sind leicht zu lesen und auf einen Blick zu durchschauen.
    Dafür muss man aber das System verstanden haben und aus Erfahrung kann ich sagen, dass das alleine schon bei einigen problematisch ist
    Ansonsten kann ich dir aber nur zustimmen ^^
    Die BNF ist schon ganz cool, um sich den Aufbau einer Sprache klar zu machen.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •