Wenn die Bedingung erfüllt ist, also TRUE ergibt, wird der Körper ausgeführt. Wenn die Bedingung nicht TRUE ist wird der Else-Körper ausgeführt. Es muss kein Else angefügt werden. Weitergehend gibt es noch "else if" oder auch "elseif" geschrieben. Ist die if-Bedingung nicht erfüllt wird die elseif-Bedingung geprüft. Es können mehrere elseif aneinander gehangen werden wie im folgenden Beispiel:
$var = 5 if ($var == 4) { echo "\$var ist vier"; } elseif ($var == -3) { echo "\$var ist minus drei"; } elseif ($var == 5) { echo "\$var ist fünf"; } else { echo "Idk."; } // Ausgabe: $var ist fünf
Ohne Vorweg greifen zu wollen, aber generell lassen sich solche Überprüfungen einfacher und übersichtlicher mit Switch machen. Weitere Vergleichs-Operatoren wie == oder != findest du im PHP-Manuel.
Schleife
Schleifen wiederholen Code. Das spart Arbeit und wenn nicht klar ist wie oft etwas wiederholt wird sind sie sogar essenziell.
for (expr1; condition; expr3) { /* Code … */ }
Expr1 wird vor dem Schleifenbeginn ausgeführt. Normalerweise wird eine Variable definiert z.B. $i=0;
Expr2 (condition) wird vor jedem Schleifendurchgang getestet. Ist das Ergebnis TRUE wird der Schleifenkörper ausgeführt.
Expr3 wird nach jedem Schleifendurchgang ausgeführt. Normalerweise ändert man die Variable z.B. $i++
Ein Beispiel wäre:
/* $_POST['float'] ist in unserem Fall 10. */ for ($int = 0; $int < $_POST['float']; $int++) { echo $int . ", "; }
Eine weiter Schleife ist die Foreach-Schleife. Sie geht die Elemente eines Arrays (euch bekannt als Liste) einzeln durch.
$pizzaToppingList = ["Pilze", "Schinken", "Salami"]; foreach ($pizzaToppingList as $int => $topping) { echo $topping . "ist der " . $int . ". Belag in der Liste.<br>"; } // Ausgabe: // Pilze ist der 0. Belag in der Liste. // Schinken ist der 1. Belag in der Liste. // Salami ist der 2. Belag in der Liste.
Gib die Quadratzahlen von 10 bist 20 in Form dieses Satzes aus: Die Quadratzahl von 10 ist 100.
Ausgabe:
Die Quadratzahl von 10 ist 100. Die Quadratzahl von 11 ist 121. Die Quadratzahl von 12 ist 144. Die Quadratzahl von 13 ist 169. Die Quadratzahl von 14 ist 196. Die Quadratzahl von 15 ist 225. Die Quadratzahl von 16 ist 256. Die Quadratzahl von 17 ist 289. Die Quadratzahl von 18 ist 324. Die Quadratzahl von 19 ist 361. Die Quadratzahl von 20 ist 400.
Lösung:
for ($i=10; $i < 21; $i++) { echo "Die Quadratzahl von " . $i . " ist " . $i*$i . ".<br>"; }
Aufgabe 2:
Gib die Quadratzahlen 1, 4, 9, 16, … 225 aus. Hinter der 225 soll kein Komma sein und die 25 soll fettgedruckt dargestellt werden.
/* <b> Tag öffnen wenn 25 */ if ($i*$i == 25) { echo "<b>"; }
/* gibt das Quadrat von $i aus. */ echo $i*$i;
/* <b> Tag schließen wenn 25 */ if ($i*$i == 25) { echo "</b>"; }
/* Komma wenn nicht 225 */ if ($i*$i != 225) { echo ", "; } }
Aufgabe 3:
Mit einem Formular sollen Potenzen berechnet werden. Benötigt werden der Exponent und die Basis. Die Ausgabe könnte so aussehen: "34 = 3 * 3 * 3 * 3 = 81".
Ausgabe:
Wenn 2 und 8 gewählt wurden käme dieses Ergebnis zustande 28 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 = 256
/* Malzeichen nur ausgeben, wenn es nicht das letzte Mal ist. */ if ($i != $_POST['exp']) { echo " * "; }
$result *= $_POST['base']; } /* Ergebnis ausgeben */ echo " = " . $result; // alternativ kann auch pow($_POST['base'], $_POST['exp']) oder $_POST['base']**$_POST['exp'] anstelle von $result.
Aufgabe 4
Ein Countdown von 100 bis 0 wird verlangt. Jede gerade Zahl soll unterstrichen werden. Modular gibt den Rest beim Teilen aus wie z.B. 10%3 = 1. Es kann 3 mal geteilt werden und dann bleibt einer übrig.
Tipp: Eine zahl ist gerade wenn sie ohne Rest durch 2 teilbar ist.
/* von 100 bis 0 */ for ($i=100; $i > -1 ; $i--) { /* unterstreichen gerader Zahlen anfangen */ if ($i%2 == 0) { echo "<u>"; } echo $i; /* unterstreichen gerader Zahlen beenden */ if ($i%2 == 0) { echo "</u>"; } /* damit das Leerzeichen nicht unterstrichen wird nach den Tags */ echo " "; /* ein Umbruch wenn die Zahl durch 10 ohne Rest teilbar ist */ if ($i%10 == 0) { echo "<br />"; } }
Aufgabe 5
In ein Formular sollen das Kapital, den Zinssatz und die Jahre angegeben werden. Die Ausgabe soll so aussehen: Für das 1. Jahr erhalten Sie x Euro Zinsen, damit beträgt Ihr Gesamtvermögen y Euro.
Ausgabe:
Wenn 1.000, 5% und 3 Jahre gewählt wurden, würde die Ausgabe wie folgt aussehen: Für das 1. Jahr erhalten Sie 50,00 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.050,00 €. Für das 2. Jahr erhalten Sie 52,50 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.102,50 €. Für das 3. Jahr erhalten Sie 55,13 Euro Zinsen, damit beträgt Ihr Gesamtvermögen 1.157,63 €.
PHP steht heute für PHP Hypertext Preprocessor, ist eine serverseitige Skriptsprache, die in ".php"-Dateien geschrieben wird und seit Dezember 2018 in der Version 7.3 ist und wird von 79% aller Websites verwendet (stand: Anfang 2019).
PHP-Code muss zwischen <?php und ?> liegen. Mit echo wird das nachfolgende ausgegeben (hier: Hello World).
<?php $title = 'Dies ist ein titel'; ?> <!DOCTYPE html> <html> <head> <title><?= $title ?></title> </head> <body> <h1><?php echo $title . " auf JS"; ?></h1> <p>Dieser Paragraf von "<?= $title ?>" hat keine Funktion.</p> </body> </html>
Wie man sieht kann man beliebig oft <?php ?> setzen und sind diese gerade nicht geöffnet ganz normal html schreiben. Die neue Sache sind Variablen. Sie beginnen immer mit $ und dann eine sinnvolle Bezeichnung. In Variablen kann alles mögliche gespeichert werden. Text Anführungszeichen (") oder ' nennt man String. Will man mit mehrere Sachen ausgeben muss man diese mit einem Punkt verbinden wie in h1 zu sehen ist. Das ist auch in der kurzen Schreibweise (<?= 'Hallo' . " Hi" ?>) möglich.
Bei den ersten vier Rechnungen werden $val1 und $val2 nicht verändert, sondern das Ergebnis in der Variable ($sum,...) gespeichert.
Formulare und PHP
Die URL in dem Formular ("action='/url/to/php.php'") schickt den User beim absenden zu der Datei und wenn es eine '.php' ist speichert PHP die gesendeten Daten in einer sogenannten Globalen Variable. Je nachdem ob man method="GET" oder "POST" gewählt hat werden sie in $_GET oder $_POST in einer Liste (Array) gespeichert. Eine Element aus der Liste bekommt man mit dem Namen des Input-, Textarea oder Select-Feld.
Ruft man die "/url/to/php.php" auf ohne das Formular ausgefüllt zu haben, kennt PHP 'sel' und 'sirname' natürlich nicht und gibt so einen Wahrnung für jede Variable aus: "Notice: Undefined index: sel in /url/to/php.php on line 2".