Informatik :: PHP + MySQL :: Häufig gebrauchte Programmteile in PHP

Häufig gebrauchte Programmteile in PHP

[Funktionen] [Prozeduren] [Verweise als Parameter]

Funktionen

Unter einer Funktion kann man sich ganz einfach ein Unterprogramm vorstellen, welches an beliebig vielen Stellen im Programm beliebig oft aufgerufen werden kann. Dabei kann man einer Funktion Parameter (Werte) übergeben, mit denen sie arbeiten soll. Die Funktion ihrerseits gibt der sie aufrufenden Stelle im Programm einen Wert zurück.

Die allgemeine Schreibweise einer Funktion sieht so aus:

     function Name ([$Argument, $Argument2...])
     {
        Befehle;
        return $Ergebnis;
     }

Beispiel Fläche eines Rechtecks:

     //---Deklaration der Funktion--------
     function flaeche ($laenge, $breite)
     {
        $erg = $laenge * $breite;
        return $erg;
     }

     //---Aufruf mit Länge 10 und Breite 3 --
     echo "Fläche: ".flaeche(10,3);

Seitenanfang

Prozeduren

Im Gegensatz zu einer Funktion gibt eine Prozedur keinen Wert an die aufrufende Stelle im Programm zurück. Ansonsten kann eine Prozedur genauso Befehle ausführen und ist auch an beliebig vielen Stellen im Programm beliebig oft aufrufbar. Auch einer Prozedur kann man Parameter (Werte) übergeben, mit denen sie arbeiten soll.

Die allgemeine Schreibweise einer Prozedur sieht so aus:

     function Name ([$Argument, $Argument2...]) {
        Befehle;
     }

Beispiel Fläche eines Rechtecks:

     //---Deklaration---------------------
     function flaeche ($laenge, $breite)
     {
        $erg = $laenge * $breite;
        echo "Flache: $erg";
     }

     //---Aufruf mit Länge 10 und Breite 3 --
     flaeche(10,3);  // Berechne Fläche

Seitenanfang

Verweise als Parameter

Normalerweise werden Prozeduren und Funktionen Werte als Parameter übermittelt, mit denen sie dann arbeiten können. Außerhalb des Unterprogramms bleiben die Werte, die innerhalb des Unterprogramms verändert werden können, aber unverändert.
Durch ein vorangestelltes & kann man dies aber ändern.

  1 <?
  2   $laenge = 2;
  3   $breite = 1;
  4   function test ($laenge, &$breite) {
  5      $laenge = 6;
  6      $breite = 2;
  7      echo "innerhalb: Länge=$laenge Breite=$breite";  //innerhalb: Länge=6 Breite=2
  8   }
  9   //--Aufruf der Prozedur test-------------
 10   test ($laenge, $breite);
 11   echo "ausserhalb: Länge=$laenge Breite=$breite";  //außerhalb: Länge=2 Breite=2
 12 ?>

Erklärung:
In Zeile 2 und 3 werden die Startwerte festgelegt ($laenge=2 und $breite=1).
In der Zeile 10 wird die Prozedur test aufgerufen. Ihr werden die $laenge als Wert und die $breite als Verweis übergeben.
Innerhalb der Prozedur bekommen die Länge den Wert 6 und die Breite den Wert 2. (siehe Zeile 7)
Außerhalb der Pozedur (siehe Zeile 11) hat sich aber nur der Wert von $breite geändert (von 1 auf 2). Der Wert von $laenge unverändert 2 geblieben ist.

Merke!
Soll der Wert einer Variablen, die außerhalb einer Funktion oder Prozedur deklariert wurde, durch die Funktion oder Prozedur verändert werden, so muss man sie als Verweis übergeben.


Seitenanfang