faecher:informatik:oberstufe:php:funktionen:start

Funktionen

  • Eine Funktion ist ein Block von Anweisungen, die in einem Programm wiederholt verwendet werden können.
  • Eine Funktion wird nicht sofort ausgeführt, wenn eine Seite geladen wird.
  • Eine Funktion wird durch einen Aufruf der Funktion ausgeführt.
function <NAME-DER-FUNKTION> ( <ÜBERGABEWERTE> ) {
   <AUSZUFÜHRENDER CODE>;
   return ( <ZURÜCKGEBENER WERT> );
}

Eine Funktion muss keine Übergabewerte haben, sie muss auch nicht zwingend einen Wert zurückgeben.

Funktion ohne Übergabe- und Rückgabewert

<?php
function sagHallo() {
    echo "Hallo Welt"<br />;
}
 
sagHallo(); 
echo "Huhu <br />";
sagHallo();
?> 

Probiere das Beispiel in deinem Webspace aus.

Beim Funktions-Aufruf können Inhalte übergeben werden, im Beispiel teilen(18,2). 18 und 2 heißen dabei Argumente oder Übergabwerte. Die Funktion nimmt die Argumente dabei in der angebenen Reihenfolge entgegen und weist diese den Variablen $zaehler und $nenner zu.

<?php
function teilen( $zaehler, $nenner )
{
    $bruch=$zaehler/$nenner;
    echo $bruch;
}
 
echo "<p>Berechnung von 18 / 2 = ";
teilen(18,2);
?>

Alle Variablen, die innerhalb der Funktion deklariert oder initialisiert werden, gelten nur lokal innerhalb des Funktionsblocks. Probiere den folgenden Code aus:

<?php
function teilen( $zaehler, $nenner )
{
    $bruch=$zaehler/$nenner;
 
}
 
echo "<p>Berechnung von 18 / 2 = ";
teilen(18,2);
echo $bruch;
?>

Da $bruch außerhalb der Funktion nicht existiert, erfolgt hier eine Fehlermeldung.

Um dieses Problem zu lösen, kann man Rückgabewerte übergeben. Dabei kehrt der Programmablauf an die Stelle zurück, an der die Funktion aufgerufen wurde und übergibt den mit return angegebenen Wert. Um diesen Rückgabewert weiterzuverarbeiten, muss man ihn im Hauptprogramm in einer Variablen ablegen.

<?php
function teilen( $zaehler, $nenner )
{
    $bruch=$zaehler/$nenner;
    return $bruch;
 
}
 
echo "<p>Berechnung von 18 / 2 = ";
$ergebnis=teilen(18,2); // speichert den Rückgabewert der Funktion in der Variablen $ergebnis
echo $ergebnis;
?>

Aufpassen muss man, wenn man im globalen Programmbereich und innerhalb von Funktionen Variablen mit dem selben Namen verwendet:

<?php
function teilen( $zaehler, $nenner )
{
    $bruch=$zaehler/$nenner;
    echo "Lokal in der Funktion: $bruch<br />";
    return $bruch;
 
}
 
$bruch=500;
echo "Global vorher: $bruch <br /> ";
echo "<p>Berechnung von 18 / 2 = ";
$ergebnis=teilen(18,2);
echo $ergebnis;
echo "<br />Global nachher: $bruch <br />";
$bruch=teilen(20,2); // hier wird die globale $bruch Variable mit 
//dem Rückgabewert überschrieben.
echo "<br />Global am Ende: $bruch <br />";
?>
  • Teste alle Beispiele in deinem Webspace
  • Finde heraus, wie man innerhalb einer Funktion auf globale Variablen zugreifen kann.
  • Erweitere das Divisionsbeispiel durch ein Formular, in dem du die beiden Werte eingeben kannst. Welchen Sonderfall solltest du überprüfen?
  • Erweitere dein Formular um ein weiteres Feld, in dem du weitere Rechenoperationen auswählen kannst. (Fakultät, Logarithmus?. Was ist die größte Zahl, deren Fakultät du berechnen kannst?)
  • Wenn du Startschwierigkeiten hast, kannst du mit der Vorlage für den Rechner beginnen.
  • faecher/informatik/oberstufe/php/funktionen/start.txt
  • Zuletzt geändert: 26.04.2021 15:55
  • von sbel