WWW-Programmierung II, Vorlesung 7

<- Vorlesung 6 Übungen Vorlesung 8 ->


24) Funktionen

Ein wichtiger Bestandteil einer jeden Programmiersprache ist die Fähigkeit, mehrere Befehle zu einem einzigen Befehl zusammenzufassen, d.h. neue Funktionen zu definieren. PHP hat diese Fähigkeit selbstverständlich auch.

Ein Beispiel:
Wir wollen für eine Anzahl von Tagen berechnen, wieviele Sekunden diese 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 + ($prozent/100.0);
		$y = $kapital * exp( $laufzeit*log($x) );
		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 wiederum im Handbuch 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:

	function zinseszins ($prozent,$laufzeit,$kapital) { ...
Wir wollen aber jetzt den Fall betrachten, daß diese Variable bereits gesetzt ist, und wir sie nicht als Argument übergeben wollen. Dann müssen wir explizit angeben, daß die Variable "von außen" stammt. Dies geschieht durch den Befehl global:
	$kapital = 10000.0;

	function zinseszins ($prozent,$laufzeit) {
		global $kapital;

		$x = 1.0 + ($prozent/100.0);
		$y = $kapital * exp( $laufzeit*log($x) );
		return $y;
	}

	$proz = 6;
	$zeit = 10;
	$x = $zinseszins($proz,$laufzeit);
	echo "Das Kapital beträgt $x Euro";
Mehrere Werte können nur mit Hilfe einer Liste zurückgegeben werden. Zum Beispiel:
	$kapital = 10000.0;

	function zinseszins ($prozent,$laufzeit) {
		global $kapital;

		$x = 1.0 + ($prozent/100.0);
		$y = $kapital * exp( $laufzeit*log($x) );
		$ertrag = $y-$kapital;
		return array($y, $ertrag) ;
	}

	$proz = 6;
	$zeit = 10;
	list($x,$e) = $zinseszins($proz,$laufzeit);
	echo "Das Kapital beträgt $x Euro. Sie haben $e Euro Gewinn";
Bei return geben Sie ein array an, mit list lesen Sie die Werte wieder aus.


25) String-Funktionen

Ein weiteres wichtiges Betätigungsfeld von PHP ist die Bearbeitung von Zeichenketten. Es gibt eine ganze Reihe von Befehlen um Zeichenketten zu manipulieren, wir stellen hier nur die wichtigsten vor, der Rest kann im Handbuch nachgeschlagen werden. trim entfernt Leerzeichen, Tabulatorzeichen etc. (sogannten "whitespace") vor dem ersten und nach dem letzten "echten" Zeichen in der Zeichenkette.
	$x = "   Ich bin eine Zeichenkette! ";
	$y = trim($x);
Die Befehle ltrim() und chop() entfernen whitespace vor, bzw. nach der Zeichenkette.

Für die verspielten PHP-Programmierer: strtoupper() und strtolower() wandeln alle Zeichen eines Strings in Großbuchstaben, bzw. Kleinbuchstaben um.
Achtung: Probleme kann es bei Umlauten geben.

Der Befehl ucfirst() wandelt das erste Zeichen eines Strings in Großbuchstaben um (wenn möglich).

Der Befehl ucwords() hingegen wandelt in jedem Wort eines Strings das erste Zeichen in Großbuchstaben um (wenn möglich).

Der folgende Befehl ist besonders wichtig, wenn man vorhandenen Text für das WWW aufbereiten will:

	$x = nl2br($y);
ersetzt alle Zeilenumbruch-Zeichen ("\n") des Strings $y in die Zeichenfolge <BR>\n.

Es gibt noch einige weitere wichtige Funktionen, um Strings zu vergleichen, zu ersetzen und mit HTML-Sonderzeichen umzugehen, diese sind können dem Handbuch entnommen werden. Dazu gehören:

Zerlegen von Strings

Suchen und Vergleichen

Suchen nach ähnlichen Strings

Behandeln von Sonderzeichen

Da in jeder Version von PHP neue Befehle zur Behandlung von Strings hinzu kommen, ist es wichtig, häufig im Handbuch zu stöbern und einzelne Befehle auszuprobieren.


<- Vorlesung 6 Übungen Vorlesung 8 ->

Alfred.Wassermann@uni-bayreuth.de