[[funktionen:funktionen04|Lektion 2 - Eigene Funktionen definieren]]
====== Lektion 3 - Einbinden externer php-Dateien ======
Mit der Funktion require wird ein anderes PHP-Skript geladen und ausgeführt. Das aufgerufene Skript verhält sich dabei ebenso, wie wenn der Code direkt an dieser Stelle stehen würde. Diese Datei kann auch (bzw. nur) Text bzw. HTML-Tags enthalten; bloßer Text wird einfach ausgegeben, HTML-Tags werden vom Browser interpretiert.
Mit dem Befehl
require("lib.php");
wird die Datei "lib.php" an dieser Stelle in die aktuelle PHP Datei eingebunden - wenn die Datei lib.php nicht gefunden wird, bricht das Skript ab.
Insbesondere stehen alle Funktionen, die in der Datei lib.php definiert wurden in der Datei zur Verfügung, in der sie eingebunden wurde. Auf diese Weise kann man sich eine eigene "Funktionsbibliothek" erzeugen: Funktionen, die man immer wieder benötigt legt man in der Datei "lib.php" ab und kann diese dann in allen neuen Projekten nutzen.
===== Übung 1 =====
{{:htmlcss:work_64.png |}} Lege dir eine eigene Datei lib.php an. Die Datei soll eine Funktion zur Berechnung der Fakultaet einer Zahl enthalten.
Binde die Datei in eine weitere PHP-Datei ein und nutze die Fakultäts-Funktion dort.
===== Übung 2 =====
{{:htmlcss:work_64.png |}}
Füge deiner Funktionsbibliothek eine Funktion hinzu, die ein Formular mit einem Textfeld erzeugt. Implementiere die Funktion so, dass sie als Argument den Namen der Post-Variablen entgegennimmt und als zweites Argument der Text des Buttons übergeben wird.
Folgendes Codebeispiel soll funktionieren:
my_form('p_var', 'b_text');
print $_POST['p_var'];
**Hinweis:** Die Variable ''$_SERVER['PHP_SELF']'' beinhaltet stets den Namen des aktuellen Skripts, wenn man ''action=\" " . $_SERVER['PHP_SELF'] . " \"'' für das Formular setzt, wird immer das richtige Skript aufgerufen.
Dabei bedeutet ''\"'', dass jeweils ein '' " '' für die Ausgabe benötigt wird, welches **nicht** an ''print'' bzw. ''echo'' gebunden ist.
===== Übung 3 =====
{{:htmlcss:work_64.png |}} Erweitere deine Funktion aus Beispiel zwei so, dass man mehrere Texteingabefelder erhält. Die Übergabe der Feldnamen soll als Array erfolgen:
$felder = array('p_var1', 'p_var2', 'p_var3');
my_forms($felder, 'b_text');
print $_POST['p_var1'];
print $_POST['p_var2'];
print $_POST['p_var3'];
===== Übung 4 =====
{{:htmlcss:work_64.png |}} Schreibe eine Funktion ''easyinput'', die als Argument ein Array mit Variablennamen entgegennimmt und als Ergebnis die POST-Werte liefert.
$felder = array('zahl', 'name', 'farbe');
$werte = easyinput($felder);
foreach($werte as $wert) {
print $wert;
}
[[funktionen:funkt_uebungen|Übungen zu Funktionen]]