Das Sieb des Eratosthenes

Vordefinierte Funktionen

PHP kennt zahlreiche vordefinierte Funktionen:

sqrt(4) → gibt 2 zurück

is_numeric(4) → gibt TRUE zurück

is_numeric(„frank“) → gibt false zurück

Eine Funktion zeichnet sich meist dadurch aus, dass Sie ein oder mehrere Argumente entgegennimmt und einen Rückgabewert besitzt.

Damit man Abläufe, die man in einem Programm häufig benötigt nicht mehrmals in einem Programm einbauen muss, kann man eigene Funktionen definieren.

Eigene Funktionen

Eine Funktion besteht aus einem Funktionskopf und einem Funktionsrumpf. Der Funktionskopf seinerseits besteht aus dem Schlüsselwort function, welches dem Interpreter sagt, dass eine Funtionsdefinition beginnt.

Dann folgt der frei wählbare Name der Funktion. Gültige Funktionsnamen müssen mit einem Unterstrich „_“ (underscore) oder einem Buchstaben beginnen, danach können weitere Buchstaben, Ziffern oder der Unterstrich in beliebiger Reihenfolge kommen.

Nach dem Namen folgt zwischen einem runden Klammernpaar eine mittels Kommata separierte Parameterliste, d.h. die Werte und Variablen, die an den Funktionsrumpf übergeben werden.

Beispiel

function fakultaet($zahl) { $fak = 1; for($i=1; $i<=$zahl; $i++) { $fak = $fak * $i; } return $fak; }

Dieses Beispiel definiert eine Funktion mit dem Namen fakultaet, die beim Aufruf einen Parameter ($zahl) erwartet. Dieser wird im Funktionsrumpf verwendet, um die Fakultät der an die Funktion übergebenen Zahl zu berechnen.

Der Funktionskopf bestimmt, wie die Funktion aufgerufen wird, nämlich ähnlich wie in der Funktionsdefinition aber ohne das Schlüsselwort function.

Im Beispiel also

$ergebnis = fakultaet(5);

Im Funktionsrumpf befindet sich der Code, der beim Aufruf der Funktion ausgeführt wird - und nur dann. Man kann also alle Funktionen am Beginn des PHP-Skripts definieren und unter den Funktionsdefinitionen das eigentliche Programm beginnen - der Programmcode in den Funktionskörpern wird erst ausgeführt, wenn die betreffende Funktion aufgerufen wird.

Eine Funktion kann (und sollte) einen Wert zurückgeben. Dies geschieht durch den return Befehl: Durch die Anweisung

return $argument;

wird die Ausführung der Funktion an dieser Stelle beendet und das Program springt zurück zu der Stelle, von der die Funktion aufgerufen wurde. Der Wert von $argument wird dabei an die aufrufende Stelle übergeben und kann dort gespeichert, ausgegeben oder weiterverarbeitet werden.

Übung 1

Schreibe ein php-Programm, das in einem Formular eine Zahl X entgegennimmt und für alle natürlichen Zahlen kleiner als X jeweils die Fakultät berechnet und ausgibt. Verwende zur Berechnung der Fakultät eine Funktion wie die obige.

Arrays als Argument

Man kann als Argument auch ein Array an eine Funktion übergeben, also z.B. so:

$liste = array(10,21,13,19,1,23,2,4); $sortiert = myselectionsort($liste);

Hier wird ein Array an die Funktion myselectionsort übergeben, als Ergebnis sollte ein sortiertes Array zurückgegeben werden.

Übung 2

1. Kopiere dein Selection-Sort Programm und schreibe es so um, dass der Sortiervorgang in einer Funktion ausgelagert ist.

2. Ergänze deine Funktion um einen zweiten Parameter, mit dem du beim Aufruf der Funktion bestimmen kannst, ob das Array aufsteigend oder absteigend sortiert werden soll.

function myselectionsort($unsortiert, $richtung) { [...] } [...] $aufsteigend_sortiert = myselectionsort($unsortiert, "ASC"); $absteigend_sortiert = myselectionsort($unsortiert, "DESC"); [...]

Vordefinierte Funktionen