wrtlprnft.de - Struktur von Code und Kommentare (PHP)

Wenn Sie die vorherigen Kapitel und Codebeispiele aufmerksam gelesen haben, wird ihnen aufgefallen sein, dass in den Codebeispielen an etlichen Stellen Leerzeichen zwischen beispielsweise Operatoren und Variablen oder Zahlen plaziert wurden. Sie werden sich vielleicht fragen, wo diese Leeerzeichen positioniert seien müssen und wo nicht.
Die Antwort wird Sie möglicherweise nicht überraschen: Es gibt keine festen Regeln!
Sie können Leerzeichen und Tabulatoren im Code überall verteilen, solange Sie damit keine Wörter oder Operatoren trennen. Deshalb sind folgende Codeblöcke vollkommen gleichwertig:
$Vorname = 'Hans';
$Nachname = 'Mustermann';
$GanzerName = $Vorname);
$GanzerName .= ' ';
$GanzerName .= $Nachname);
print($GanzerName);
	$Vorname
			
                         =
			
		'Hans';
$Nachname
=		 'Mustermann';
$GanzerName = 
			$Vorname);
$GanzerName .=
		' '; $GanzerName
		.= $Nachname);
print(
$GanzerName          )
;
Der Sinn einer solchen Schreibweise ist allerdings fraglich.
Ebenso könnten Sie auch sämtlichen Code in eine Zeile schreiben, da nicht das Zeilenende das Ende eines Befehls markiert, sondern der Strichpunkt.
Da der Code im 2. Beispiel sehr schlecht lesbar ist, empfiehlt sich, eine Schreibweise zu wählen, die in irgenteiner Form Sinn macht und leicht zu lesen ist. Dazu gehört zum Beispiel, dass ein Befehl im Normalfall in eine eigene Zeile geschrieben wird.
Egal, wie Sie letztendlich Ihren Code schreiben, es ist wichtig, dass Sie dabei möglichst nicht mitten in einem Script Ihren Stil ändern. Außerdem sollten Sie eine gewisse Toleranz gegenüber der Schreibweise anderer Programmierer mitbringen, da diese unter umständen Schreibweisen verwenden könnten, die Ihnen nicht gefallen.

Kommentare

Manchmal kann es passieren, dass Sie sehr komplizierte Codestücke schreiben und Angst haben, dass Sie irgentwann vergessen, was diese eigentlich bewirken sollten. In diesem Fall bietet Ihnen PHP die Möglichkeit, Kommentare zu definieren.
Wüssten Sie zum Beispiel auf Anhieb, was der nachfolgende Code bewirkt?
$Ergebnis = $a / 2 * 1.732050808;
Offensichtlich soll hier der Variable $Ergebnis irgentein Wert zugewiesen werden. Was dieser Wert genau bedeutet wird aber nicht so ohne weiteres klar. Wie schaut es aber mit diesem Code aus?
$Ergebnis = $a / 2 * 1.732050808;
// Dieser Befehl rechnet die Höhe eines gleichseitigen Dreiecks mit der
// Seitenlänge $a aus und weist ihn der Variablen $Ergebnis zu.
Dies klärt zwar die Bedeutung dieses Befehls, doch auch dieser Code mag vielleicht anfangs verwirren, denn was sind das für zwei Befehle, die mit "//"beginnen?
Die Antwort ist, dass Zeilen, die mit // beginnen, vom Server ignoriert werden. Der Inhalt einer solchen Zeile kann daher vom Programmierer für Anmerkungen und Erklärungen gebraucht werden.

Kommentare am Ende einer Zeile

Es kann störend sein, für jeden Kommentar eine neue Zeile zu beginnen. Daher gibt es folgende Schreibweise:
$a = 5; // $a ist die Kantenlänge des Dreiecks 
In dieser Zeile wird alles ab den zwei Schrägstrichen ignoriert. Dies gilt grundsätzlich für alle Zahlen, die // enthalten, mit einer (vernünftigen) Ausnahme: Falls sich die zwei Schrägstriche in einer Zeichenkette, die von Anführungszeichen eingeschlossen wird, befindet, werden die Striche als Teil der Zeichenkette behandelt, nicht als Zeichen für einen Kommentar. Deshalb wird auch dieser Code korrekt ausgeführt:
print('Zur Erinnerung: // leitet einen Kommentar ein!'); 

Kommentare über Teile einer Zeile oder mehrere Zeilen

Wenn Sie einen mehrere Zeilen langen Beschreibungstext schreiben wollen könnten Sie natürlich einfach an den Beginn jeder Zeile zwei Schrägstriche schreiben, etwa so:
// Dieses Programm soll folgende Aufgaben durchführen:
//   - 1.Aufgabe
//   - 2.Aufgabe
//   - 3.Aufgabe
//   - 4.Aufgabe
Es gibt aber auch noch eine einfachere Fassung:
/*
Dieses Programm soll folgende Aufgaben durchführen:
   - 1.Aufgabe
   - 2.Aufgabe
   - 3.Aufgabe
   - 4.Aufgabe
*/
Der Server ignoriert auch Code, der zwischen /* und */ steht. Beachten Sie, dass Sie nicht mehrere Kommentare ineinander schachteln dürfen:
/*
Dieses Programm soll folgende Aufgaben durchführen:
   - 1.Aufgabe
   - 2.Aufgabe
/* - 3.Aufgabe Besser nicht!*/
   - 4.Aufgabe
*/
Wie es schon durch die farbliche Hervorhebung angedeutet wird, scheint hier etwas nicht zu stimmen. Der Fehler liegt darin, dass das den inneren Kommentar einleitende /* als Teil des Kommentars betrachtet wird, das abschließende */ jedoch den ersten Kommentar beendet. Daher sollten Sie solche Schachtelungen vermeiden.
Sie können ebenfalls nur einen Teil einer Zeile auskommentieren, zum Beispiel so:
$Ergebnis = $a /*Seitenlänge des Dreiecks*/ / 2 * 1.732050808;
Auch hier wird der Kommentar erkannt.

Wenn Sie auffälligere und schönere Kommentare verwenden wollen können Sie folgende Technik verwenden:
/********************************************************
 * Dieses Programm soll folgende Aufgaben durchführen:  *
 * - 1.Aufgabe                                          *
 * - 2.Aufgabe                                          *
 * - 3.Aufgabe                                          *
 * - 4.Aufgabe                                          *
 ********************************************************/
Es handelt sich auch hierbei um einen normalen Kommentar, da er mit /* beginnt und auf */ endet.

Sinnvolle Verwendung von Kommentaren

Vor allem für Anfänger mag es vielleicht verlockend sein, für jede Zeile einen Kommentar zu schreiben:
$Index++; //Erhöht den Wert von $Index um 1.
Von dieser Möglichkeit ist allerdings abzuraten, da eine solche Kommentierung den Code letztendlich unleserlich macht. Sie müssen also das richtige Mittelmaß finden. Dazu gehört beispielsweise nicht erklären, was eine Zeile tut, sondern warum sie dies und jenes tut.
Sie können Kommentare aber auch verwenden, um Teile Ihres Codes von anderen zu trennen:
//======-Initialisierungen-=======
$Vorname = 'Hans';
$Nachname = 'Mustermann';

//======-Berechnung-==============
$GanzerName = $Vorname);
$GanzerName .= ' ';
$GanzerName .= $Nachname);

//======-Ausgabe-=================
print($GanzerName);
Hier sind allerdings fast schon zu viele Kommentare auf einer Zeile vorhanden. Im Normalfall wären solche Blöcke auch größer.

"Auskommentieren"von Code

Wenn Sie einen langen Codeblock geschrieben haben kann es passieren, dass Sie einen schwer zu entdeckenden Fehler finden. Vielleicht wollen Sie aber herausfinden, ob Ihr Code ohne diese Fehlerquelle funktionieren würde. Eine Möglichkeit wäre es, den falschen Code einfach zu löschen. Die andere, elegantere Methode ist es, den Codeblock einfach in einen Kommentar zu verwandeln. Falls Sie sich dann entscheiden, Ihren Code doch zu verwenden können Sie einfach die Kommentierungszeichen wieder entfernen. Falls Sie den Code doch nicht mehr brauchen können Sie ihn immernoch löschen:
$Ergebnis1 = 1 / (2 * $a) * ((0 - $b) - $Determinante)
// Hier kommt ein Haufen Code...
$Ergebnis2 = 1 / (2 * $a) * ((0 - $b) + $determinante)
Die 2. Zeile macht nicht das, was sie sollte. Sie könnten sie daher einfach löschen, um zu Testen, ob Ihr Code ohne sie funktioniert. Falls Sie sie aber dann doch benötigen wäre es ein Haufen Arbeit, sie wieder neu einzutippen. Sie können aber auch einfach ein // vor die entsprechende Zeile schreiben, damit diese ignoriert wird:
$Ergebnis1 = 1 / (2 * $a) * ((0 - $b) - $Determinante)
// Hier kommt ein Haufen Code...
// $Ergebnis2 = 1 / (2 * $a) * ((0 - $b) + $determinante)
Der Code wird jetzt vom Server ignoriert, Sie können ihn aber jederzeit wieder aktiv setzen, indem Sie die zwei Schrägstriche wieder entfernen.

Zusammenfassung

Navigation

Zur übersicht
Zurück zu: PHP - Der Umgang mit Variablen
Weiter zu: PHP - Kontrollstrukturen

wrtlprnft.de - Struktur von Code und Kommentare (PHP)
Logo

wrtlprnft.de - Struktur von Code und Kommentare (PHP)


Zur Navigation
Sie sind hier: wrtlprnft.dePHP-Tutorial → Struktur von Code und Kommentare
URI dieser Seite: http://wrtlprnft.de/index.php?page=phpkommentare

Wenn Sie die vorherigen Kapitel und Codebeispiele aufmerksam gelesen haben, wird ihnen aufgefallen sein, dass in den Codebeispielen an etlichen Stellen Leerzeichen zwischen beispielsweise Operatoren und Variablen oder Zahlen plaziert wurden. Sie werden sich vielleicht fragen, wo diese Leeerzeichen positioniert seien müssen und wo nicht.
Die Antwort wird Sie möglicherweise nicht überraschen: Es gibt keine festen Regeln!
Sie können Leerzeichen und Tabulatoren im Code überall verteilen, solange Sie damit keine Wörter oder Operatoren trennen. Deshalb sind folgende Codeblöcke vollkommen gleichwertig:
$Vorname = 'Hans';
$Nachname = 'Mustermann';
$GanzerName = $Vorname);
$GanzerName .= ' ';
$GanzerName .= $Nachname);
print($GanzerName);
	$Vorname
			
                         =
			
		'Hans';
$Nachname
=		 'Mustermann';
$GanzerName = 
			$Vorname);
$GanzerName .=
		' '; $GanzerName
		.= $Nachname);
print(
$GanzerName          )
;
Der Sinn einer solchen Schreibweise ist allerdings fraglich.
Ebenso könnten Sie auch sämtlichen Code in eine Zeile schreiben, da nicht das Zeilenende das Ende eines Befehls markiert, sondern der Strichpunkt.
Da der Code im 2. Beispiel sehr schlecht lesbar ist, empfiehlt sich, eine Schreibweise zu wählen, die in irgenteiner Form Sinn macht und leicht zu lesen ist. Dazu gehört zum Beispiel, dass ein Befehl im Normalfall in eine eigene Zeile geschrieben wird.
Egal, wie Sie letztendlich Ihren Code schreiben, es ist wichtig, dass Sie dabei möglichst nicht mitten in einem Script Ihren Stil ändern. Außerdem sollten Sie eine gewisse Toleranz gegenüber der Schreibweise anderer Programmierer mitbringen, da diese unter umständen Schreibweisen verwenden könnten, die Ihnen nicht gefallen.

Kommentare

Manchmal kann es passieren, dass Sie sehr komplizierte Codestücke schreiben und Angst haben, dass Sie irgentwann vergessen, was diese eigentlich bewirken sollten. In diesem Fall bietet Ihnen PHP die Möglichkeit, Kommentare zu definieren.
Wüssten Sie zum Beispiel auf Anhieb, was der nachfolgende Code bewirkt?
$Ergebnis = $a / 2 * 1.732050808;
Offensichtlich soll hier der Variable $Ergebnis irgentein Wert zugewiesen werden. Was dieser Wert genau bedeutet wird aber nicht so ohne weiteres klar. Wie schaut es aber mit diesem Code aus?
$Ergebnis = $a / 2 * 1.732050808;
// Dieser Befehl rechnet die Höhe eines gleichseitigen Dreiecks mit der
// Seitenlänge $a aus und weist ihn der Variablen $Ergebnis zu.
Dies klärt zwar die Bedeutung dieses Befehls, doch auch dieser Code mag vielleicht anfangs verwirren, denn was sind das für zwei Befehle, die mit "//"beginnen?
Die Antwort ist, dass Zeilen, die mit // beginnen, vom Server ignoriert werden. Der Inhalt einer solchen Zeile kann daher vom Programmierer für Anmerkungen und Erklärungen gebraucht werden.

Kommentare am Ende einer Zeile

Es kann störend sein, für jeden Kommentar eine neue Zeile zu beginnen. Daher gibt es folgende Schreibweise:
$a = 5; // $a ist die Kantenlänge des Dreiecks 
In dieser Zeile wird alles ab den zwei Schrägstrichen ignoriert. Dies gilt grundsätzlich für alle Zahlen, die // enthalten, mit einer (vernünftigen) Ausnahme: Falls sich die zwei Schrägstriche in einer Zeichenkette, die von Anführungszeichen eingeschlossen wird, befindet, werden die Striche als Teil der Zeichenkette behandelt, nicht als Zeichen für einen Kommentar. Deshalb wird auch dieser Code korrekt ausgeführt:
print('Zur Erinnerung: // leitet einen Kommentar ein!'); 

Kommentare über Teile einer Zeile oder mehrere Zeilen

Wenn Sie einen mehrere Zeilen langen Beschreibungstext schreiben wollen könnten Sie natürlich einfach an den Beginn jeder Zeile zwei Schrägstriche schreiben, etwa so:
// Dieses Programm soll folgende Aufgaben durchführen:
//   - 1.Aufgabe
//   - 2.Aufgabe
//   - 3.Aufgabe
//   - 4.Aufgabe
Es gibt aber auch noch eine einfachere Fassung:
/*
Dieses Programm soll folgende Aufgaben durchführen:
   - 1.Aufgabe
   - 2.Aufgabe
   - 3.Aufgabe
   - 4.Aufgabe
*/
Der Server ignoriert auch Code, der zwischen /* und */ steht. Beachten Sie, dass Sie nicht mehrere Kommentare ineinander schachteln dürfen:
/*
Dieses Programm soll folgende Aufgaben durchführen:
   - 1.Aufgabe
   - 2.Aufgabe
/* - 3.Aufgabe Besser nicht!*/
   - 4.Aufgabe
*/
Wie es schon durch die farbliche Hervorhebung angedeutet wird, scheint hier etwas nicht zu stimmen. Der Fehler liegt darin, dass das den inneren Kommentar einleitende /* als Teil des Kommentars betrachtet wird, das abschließende */ jedoch den ersten Kommentar beendet. Daher sollten Sie solche Schachtelungen vermeiden.
Sie können ebenfalls nur einen Teil einer Zeile auskommentieren, zum Beispiel so:
$Ergebnis = $a /*Seitenlänge des Dreiecks*/ / 2 * 1.732050808;
Auch hier wird der Kommentar erkannt.

Wenn Sie auffälligere und schönere Kommentare verwenden wollen können Sie folgende Technik verwenden:
/********************************************************
 * Dieses Programm soll folgende Aufgaben durchführen:  *
 * - 1.Aufgabe                                          *
 * - 2.Aufgabe                                          *
 * - 3.Aufgabe                                          *
 * - 4.Aufgabe                                          *
 ********************************************************/
Es handelt sich auch hierbei um einen normalen Kommentar, da er mit /* beginnt und auf */ endet.

Sinnvolle Verwendung von Kommentaren

Vor allem für Anfänger mag es vielleicht verlockend sein, für jede Zeile einen Kommentar zu schreiben:
$Index++; //Erhöht den Wert von $Index um 1.
Von dieser Möglichkeit ist allerdings abzuraten, da eine solche Kommentierung den Code letztendlich unleserlich macht. Sie müssen also das richtige Mittelmaß finden. Dazu gehört beispielsweise nicht erklären, was eine Zeile tut, sondern warum sie dies und jenes tut.
Sie können Kommentare aber auch verwenden, um Teile Ihres Codes von anderen zu trennen:
//======-Initialisierungen-=======
$Vorname = 'Hans';
$Nachname = 'Mustermann';

//======-Berechnung-==============
$GanzerName = $Vorname);
$GanzerName .= ' ';
$GanzerName .= $Nachname);

//======-Ausgabe-=================
print($GanzerName);
Hier sind allerdings fast schon zu viele Kommentare auf einer Zeile vorhanden. Im Normalfall wären solche Blöcke auch größer.

"Auskommentieren"von Code

Wenn Sie einen langen Codeblock geschrieben haben kann es passieren, dass Sie einen schwer zu entdeckenden Fehler finden. Vielleicht wollen Sie aber herausfinden, ob Ihr Code ohne diese Fehlerquelle funktionieren würde. Eine Möglichkeit wäre es, den falschen Code einfach zu löschen. Die andere, elegantere Methode ist es, den Codeblock einfach in einen Kommentar zu verwandeln. Falls Sie sich dann entscheiden, Ihren Code doch zu verwenden können Sie einfach die Kommentierungszeichen wieder entfernen. Falls Sie den Code doch nicht mehr brauchen können Sie ihn immernoch löschen:
$Ergebnis1 = 1 / (2 * $a) * ((0 - $b) - $Determinante)
// Hier kommt ein Haufen Code...
$Ergebnis2 = 1 / (2 * $a) * ((0 - $b) + $determinante)
Die 2. Zeile macht nicht das, was sie sollte. Sie könnten sie daher einfach löschen, um zu Testen, ob Ihr Code ohne sie funktioniert. Falls Sie sie aber dann doch benötigen wäre es ein Haufen Arbeit, sie wieder neu einzutippen. Sie können aber auch einfach ein // vor die entsprechende Zeile schreiben, damit diese ignoriert wird:
$Ergebnis1 = 1 / (2 * $a) * ((0 - $b) - $Determinante)
// Hier kommt ein Haufen Code...
// $Ergebnis2 = 1 / (2 * $a) * ((0 - $b) + $determinante)
Der Code wird jetzt vom Server ignoriert, Sie können ihn aber jederzeit wieder aktiv setzen, indem Sie die zwei Schrägstriche wieder entfernen.

Zusammenfassung

  • Sie können in Ihrem Code frei Leerzeichen, Absätze und Tabulatoren verteilen, solange Sie dadurch keine Wörter trennen.
  • Zeilen, die das Zeichen // enthalten werden von diesem Zeichen bis zum Zeilenende ignoriert.
  • Code, der zwischen /* und */ steht, wird ebenfalls ignoriert.
  • Sie sollten nicht zu viele und nicht zu wenige Kommentare in Ihrem Code verwenden.

Navigation

Zur übersicht
Zurück zu: PHP - Der Umgang mit Variablen
Weiter zu: PHP - Kontrollstrukturen


Sie sind Besucher Nummer
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /www/htdocs/v096179/counter.php:2 Stack trace: #0 /www/htdocs/v096179/index.php(65): include() #1 {main} thrown in /www/htdocs/v096179/counter.php on line 2