kostenloser Webspace werbefrei: lima-city


neue Zeile in php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    runningchallenge

    runningchallenge hat kostenlosen Webspace.

    ich dachte mit

    <?php
    echo "n";
    ?>

    könnte ich eine neue Zeile tag/beginnen">beginnen. Irgendwie klappt das allerdings nicht und es wird alles ohne Unterbruch angezeigt. Habe ich irgendwas vergessen? Z.B. muss man noch irgendwie die phpVersion definieren?

    Bearbeitung:
    echo "'Backslash'n";

    Beitrag geändert: 8.8.2008 5:48:33 von runningchallenge
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m******s

    Brauchst du den Umbruch in der HTML-Ausgabe, oder im Quelltext? Für den letzteren müsste das gehen, beim ersteren müsstest du echo "<br>"; benutzen...
    Hast du denn mal angeschaut, was stattdessen dort im Quelltext steht, wo eigentlich die Zeilenumbrüche stehen sollen?
  4. Autor dieses Themas

    runningchallenge

    runningchallenge hat kostenlosen Webspace.

    bei mir kommt anstelle des zeilenumbruches nur ein leerschlag.

    ausserdem habe ich noch einen anzeigefehler:
    <?php
    $i = 5;
    $j = 10;
    echo $i."+".$j."=".$i+$j."n";
    echo $i."+1=".$i++."n";
    ?>

    zeigt:
    15 5+1=5

    Bearbeitung: wiederum 'backslash'n

    Beitrag geändert: 8.8.2008 7:20:57 von runningchallenge
  5. o**s

    Du hast Glück gehabt; ich lese gerade eine Einführung in C++ (ist ähnlich mit PHP) unter [http://www.highscore.de/cpp/einfuehrung/operatoren.html#section9]. Dort wird die Präzedenz beschrieben, die Reihenfolge, in der Operationen abgearbeitet werden. Der Punkt in PHP ist genauso wie das Plus-Zeichen ein Operator – der Verkettungsoperator.
    <?php
      echo "string" . $variable . "string";
      $denken = $wort[1] . $wort[2] . $wort['n'];
    ?>

    Nun wird aber über die Präzedenz definiert, dass in einem Ausdruck eine Addition vor einer Verkettung durchgeführt wird. Deswegen erscheint die 15.
    Die einzige Lösung, die dir bleibt, ist:
    <?php
      $i = 5;
      $j = 10;
      echo $i . "+" . $j . "=";
      echo $i+$j . "n";
      //...
    ?>

    Dass "=5" angezeigt wird, liegt am Inkrementierverhalten [http://www.highscore.de/cpp/einfuehrung/operatoren.html#section7]:
    Wenn du "$i++" schreibst, wird zu erst der Wert von $i zurückgegeben und dann die Variable inkrementiert. Deswegen solltest du "++$i" schreiben, damit der Vorgang umgekehrt abläuft.
    Hier noch einmal der gesamte Quellcode:
    <?php
            $i = 5;
            $j = 10;
            echo $i . '+' . $j . '=';
            echo $i+$j . "n";
            echo $i . '+1=' . ++$i . "n";
    ?>


    Die Umbrüche werden jetzt allerdings nur im Quelltext angezeigt und sehen im Browser wie "leerschläge" aus. Am besten du machst aus
    <?php
            ..."n";
    ?>
    einfach
    <?php
            ..."<br />n";
    ?>
    .

    PS: Verwende doch den Tag [ code ]<?php ... ?>[ /code ], um Quelltexte besser darstellen zu können.
  6. <?php
    
    $i=5;
    
    $j=10;
    
    echo $i.'+'.$j.'='.($i+$j).'<br />';
    echo $i.'+1='.++$i."<br />";

    Beim 1. müssen Klammern um die Berechnung rum. Das ganze hat wahrscheinlich etwas mit der Typ-Konvertierung zu tun, die PHP automatisch vornimmt, wenn man mit verschiedenen Datentypen gleichzeitig arbeitet. Die genauen Details kann ich dir aber auch nicht sagen.

    Beim 2. ist das Problem klar: Es macht einen Unterschied, ob du
    $i++ oder ++$i schreibst.
    Im 1. Fall wird zuerst $i ausgegeben und danach $i um 1 erhöht und beim 2. Fall wird erst $i erhöht und dann ausgegeben.
  7. Autor dieses Themas

    runningchallenge

    runningchallenge hat kostenlosen Webspace.

    Vielen Dank für die ausführliche Antwort. Ich denke, das wird mir helfen.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!