Ein wichtiger Bestandteil einer jeden Programmiersprache ist die Fähigkeit, mehrere Befehle zu einem einzigen Befehl zusammenzufassen, d.h. neue Funktionen zu definieren. PHP3 hat diese Fähigkeit selbstverständlich auch. Was in MySQL im Prinzip fehlt, sind sogenannte stored procedures. Diese kann man jedoch mit PHP3 einfach ersetzen.Das folgende Beispiel zeigt den Einsatz von Funktionen unterPHP3. Hier können Sie einfach die Routinen zum Ansprechender MySQL Datenbank einbauen, und fertig sind Ihre "StoredProcedures". Wirwollen für eine Anzahl von Tagen berechnen, wieviele Sekundendiese Tage zusammen haben: function tag ($anzahl) { $sekunden = 3600 * 24 * $anzahl; return $sekunden; }
$x = tag(7);
echo "7 Tage bestehen aus $x Sekunden !";
$anzahl
nennt man auch Argument der Funktion. Eine Funktion kann
mehrere Argumente, oder auch kein Argument besitzen:
function zinseszins ($prozent,$laufzeit) {
$kapital = 10000.0;
$x = 1.0 + ($proz/100.0);
$y = $kapital * exp( $laufzeit*log($prozent) );
return $y;
}
$proz = 6;
$zeit = 10;
$x = $zinseszins($proz,$laufzeit);
echo "Das Kapital beträgt $x Euro";
Mehr
zu den verwendeten mathematischen Funktionen kann man im
Handbuch PHP3 nachlesen. Problematisch ist im obigen (zugegebenermaßen etwas konstruierten)
Beispiel, daß die Variable $kapital in der Funktion
selbst festgelegt wird. Natürlich wird man auch diesen Wert
normalerweise als Argument der Funktion übergeben, also
etwa so:
function zinseszins ($prozent,$laufzeit,$kapital) { ...
Wir
wollen aber nun den Fall betrachten, daß diese Variable
bereits gesetzt ist, und wir sie nicht als Argument übergeben
wollen. Dann muß angeben werden, daß die Variable "von
außen" stammt. Dies geschieht durch den Befehl global.
Den Wirkungsbereich von Variablen nennt man SCOPE....:
$kapital = 10000.0;
function zinseszins ($prozent,$laufzeit) {
global $kapital;
$x = 1.0 + ($proz/100.0);
$y = $kapital * exp( $laufzeit*log($prozent) );
return $y;
}
$proz = 6;
$zeit = 10;
$x = $zinseszins($proz,$laufzeit);
echo "Das Kapital beträgt $x DM/EURO/YEN/US$..";
|