Anfänger braucht Hilfe in PHP

Mauki

Aktives Mitglied
Thread Starter
Dabei seit
24.07.2002
Beiträge
15.499
Reaktionspunkte
189
so, ich habe jetzt endlich mich mal aufgerafft um PHP zu lernen. Dazu habe ich mir vom Galileo Verlag das OpenBook PHP 4 Webserver-Programmierung für Einsteiger von Thomas Theis runtergeladen. So jetzt habe ich gleich das erste Problem das ich was nicht verstehen. Es geht um Variablen und Datentypen. Ich poste mal den Code und versuche meine Problem zu erklären.

<html>
<body>
<?php
$a = 5;
$b = 6;
$c = $a + $b;
$anrede = "Herrn";
$vorname = "Hans";
$ganzername = $anrede . " " . $vorname . " ";
$nachname = 'Maier';
$ganzername .= $nachname;
echo "Dieses Programm ist von $ganzername<p>";
echo "Das Ergebnis der Addition ist " . $c . "<p>";
echo "Das geht auch so: $c <p>";
echo 'Aber nicht so: $c';
?>
</body>
</html>


Mir sind nun die folgendenZeilen unklar:

$ganzername = $anrede . " " . $vorname . " ";

Die Variable ganzername besteht aus anrede und vorname, nur ich verstehe die Verknüpung nicht. Warum ist $vorname in doppelten Anführungszeichen und was hat es mit den ganzen Punkten auf sich ?


$ganzername .= $nachname;

Auch hier verstehe ich den Punkt und das Gleichheitszeichen nicht.

Vielleicht kann mir das ja jemand mal erklären so das ich es verstehen :D

Danke
 
Hilfe kommt

Also,
ist eigentlich ganz einfach zu erklären:

Der Vorname steht nicht etwa in Anführungszeichen, sondern in den Anführungszeichen sind nur Leerzeichen eingeschlossen, damit halt zwischen Anrede, Vorname und Nachname je ein Leerzeichen ist.

Der Punkt ist zum Zusammenfügen von Strings und anderen Werten (engl. concat) und macht halt aus dem String in $anrede und $vorname und den 2 Leerzeichen einen neuen String.

Das .= ist nur eine verkürzte Schreibform von (in diesem Fall):
$ganzername = $ganzername . $nachname;
Also auch nur ein zusammenfügen.
Dieses kurze Schreiben geht auch für alle anderen Rechenarten (nur so nebenbei bemerkt, wie zum Beispiel das $i++ für $i = $i + 1)

Hoffe ich konnte helfen.

Mfg, T.Eisenhammer.

Ps. Dieser Beitrag hat mich dazu animiert mich endlich hier anzumelden , nachdem ich schon Wochen immer hier interessante und sonderbare Dinge lese.
 
ah das hört sich doch gut an. Das mit den Leerzeichen war nämlich nirgends erklärt. Dann gehören die die Punkte immer wie folgt dazu. Habs mal farbig gemacht was zusammengehört


$ganzername = $anrede . " " . $vorname . " " ;
 
Hmm - schwere Frage

Ich kann zwar mit dem dazugehören nicht ganz so viel anfangen, aber wenn ich es richtig verstanden habe, dann ist es nicht ganz richtig was du da meinst.
die punkte gehören eigentlich nicht zu einer Variable alleine, so wie es aus der Farbgebung hervor geht, sondern immer zu 2 Variablen oder Werten (Strings, Zahl ...), nämlich der davor und der danach

Das ganze sieht dann also so aus:
gruppe1: $anrede . " "
gruppe2: gruppe1 . $vorname
gruppe3: gruppe2 . " "

Ich denke mal, der PHP-Interpreter arbeitet den Befehl von Links nach Rechts ab.

Mfg, T.Eisenhammer.

*verwirrt*
 
ok nun habe ichs verstanden :D
 
nochmals ne Frage zu PHP

hab noch ne Frage zu dem vorherigen Script. Das Script ist mir schon klar, nur bekomme ich immer folgende Fehlermeldung Parse error: parse error, unexpected T_STRING in d:\home\web06\mauk06\ftproot\www.markus-burkhardt.de\php\uc06.php on line 7 Die Zeile 7 ist die rote. Hab sogar im Lösungsteil des Buch nachgeschaut und da ist das Script genau gleich. Wo ist den hier das Problem ???


<?php

$a = 4;
$c = 2;
$ergebnis = 7 / $a + $c – 5.5 * (3 – $c);
echo $ergebnis;

?>
 
Sonderbar

Ich hab mir das ganze mal auf meinen Server via SSH kopiert und der einzige sehr sonderbare Fehler der mir aufgefallen war, war dass die Minuszeichen keine normalen Minuszeichen waren. Ausgetauscht und es geht auf einmal:
http://thomyd.dyndns.org:8080/~murphy/test.php

Frage mich nur was es mit den Minuszeichen auf sich hat.
Und ich hatte zwar Parse Error, aber von nem T_String hat er nix erwänht :mad:

Mfg, T.Eisenhammer.
 
was meinst du mit keinen normale Minuszeichen ?

Edit: Hab mal die Minuszeichen neu geschrieben und nun gehts ?

Vor allem was ist ein T_String ?

Als Anfänger hat mans schon schwer :(
 
zeichentabelle hilft

Ich hab grad das verwendete Minuszeichen in der Gleichung mal mit Zeichen in meiner Zeichentabelle (Windows) verglichen. Und es sieht so aus als wär es ein Zeichen für Bindestrich (etwas spezielles) und nicht das normale was da so beim . und ä liegt, also dieser hier: -
Ist auch etwas länger als ein normaler.

Und T_String bedeutet, das er ein Objekt vom Typ String (daher T_String) in der Gleichung gefunden hat, was ja da nicht hingehört.
Kann sein das es am Editor liegt, das dort irgendwie ein falscher Strich reingekommen ist. Einfach nochmal die Bindestriche rausnehmen und ersetzen, vielleicht hilft es.

Wirklich sonderbar sowas. Und ich will hier auch niemand veräppeln. Es gibt ausser dem normalen Minus/Bindestrich auch noch einen extra Bindestrich, naja, wer sich diese überfüllten Zeichensätze ausgedacht hat ...

Wenn das alles nichts hilft, hier ist mal meine Version:
http://thomyd.dyndns.org:8080/~murphy/test.php.txt
(musste mal .txt dranhängen, da man ansonsten den Quelltext nicht bekommt).

Mfg, T.Eisenhammer.
 
Zurück
Oben Unten