neue Zeile in php
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bearbeitung
beginnen
berechnung
code
genauen details
gesamte quellcode
http
klammern
konvertierung
machen
operation
operator
punkt
tag
tun
typ
umbruch
variable string
vorgang
wort
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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? -
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 -
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
einfach<?php ..."n"; ?>
.<?php ..."<br />n"; ?>
PS: Verwende doch den Tag [ code ]<?php ... ?>[ /code ], um Quelltexte besser darstellen zu können.
-
<?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. -
Vielen Dank für die ausführliche Antwort. Ich denke, das wird mir helfen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage