Anzeige
Tutorialbeschreibung

PHP - Teil 13 - Funktionen definieren

PHP - Teil 13 - Funktionen definieren

Funktionen sind immer dann sinnvoll, wenn bestimmte Code-Elemente immer und immer wieder auftauchen. Dann helfen Funktionen dabei, den Quellcode zu verkürzen und ihn übersichtlicher zu gestalten. Einmal definierte Funktionen müssen dann nur noch an der gewünschten Stelle im Skript aufgerufen werden. Somit lassen sich Code-Teile effizient bei Bedarf immer wieder verwenden.

Funktionen werden in PHP durch das Schlüsselwort function eingeleitet. Die allgemeine Syntax einer PHP-Funktion sieht folgendermaßen aus:

<?php
function FUNKTIONSNAME (PARAMETER){
   CODE
   return (ZURÜCKGEBENER WERT);
}
?>

Hinter dem Schlüsselwort function folgt der Funktionsname. Der Funktion können Parameter übergeben werden. Es gibt allerdings auch Funktionen ohne Parameter. Innerhalb der geschweiften Klammern steht der eigentliche Code, in dem dann auch mit Rückgabewerten gearbeitet werden kann. Dazu dann aber später mehr.

Im einfachsten Fall könnte eine Funktion folgendermaßen aussehen:

<?php 
function halloWelt(){
    echo "Hallo, Welt!";
}
?>

Der Funktionsname ist hier halloWelt(). Die Aufgabe dieser Funktion besteht lediglich darin, die Zeichenkette Hallo, Welt! mittels echo ins Dokument zu schreiben. Nachdem die Funktion definiert wurde, möchte man diese natürlich auch verwenden. Im aktuellen Beispiel sähe das folgendermaßen aus:

halloWelt();

 
Man gibt also lediglich den Funktionsnamen an der gewünschten Stelle an.

Bilder



 
Wirklich sinnvoll sind Funktionen allerdings zumeist erst dann, wenn mit Werten gearbeitet wird. Ein typisches Beispiel dafür ist die Berechnung zweier Werte. So könnte man eine Funktion definieren, über die sich die Summe zweier Werte ermitteln lässt.

<?php 
function summe($a, $b){
$summe=$a+$b;
echo $summe;
}
?>

Das Besondere an dieser Funktion sind die in Klammern übergebenen Parameter $a und $b. Diese müssen bei Aufrufen der Funktion in Form von Argumenten gesetzt werden. Ein Funktionsaufruf sähe in diesem Fall also folgendermaßen aus:

summe(7,9)

Beim Aufruf der Funktion übergibt man die gewünschten Argumente. Dabei können dann sowohl Variablen als auch Werte direkt angegeben werden. Das ergibt folgendes Bild:

Bilder



 
Die beiden Parameter im Funktionskopf (also in den Klammern) $a und $b existieren nur innerhalb dieser Funktion. Außerhalb dieser Funktion gibt es sie nicht. Ebenso sind möglicherweise vorhandene Variablen $a und $b, die außerhalb der Funktion summe() deklariert wurden, innerhalb von summe() nicht verfügbar.

Die im Funktionskopf definierten Parameter fungieren als Platzhalter. Bei diesen Platzhaltern handelt es sich um nichts anderes als um Variablen. Besitzt ein Parameter den gleichen Namen wie eine Variable außerhalb der Funktion, können beide unterschiedliche Werte und sogar Datentypen annehmen. (Ausnahme bilden hier lediglich globale Variablen. Dazu dann aber später mehr).


Standardwerte zuweisen

Wenn Parameter häufig denselben Wert besitzen, empfiehlt es sich, Standardwerte zu definieren. Wie sich so etwas umsetzen lässt, zeigt das folgende Beispiel.

<?php
function ausgabe($text, $size = 20) {
 echo "<p style="font-size:" . $size . "px; ">" . $text . "</p>";
}
ausgabe("Hallo, Welt!");
echo "<br />"; 
ausgabe("Hallo, Welt!", 50);
?>

Hier wurden der Funktion ausgabe() die beiden Parameter $text und $size übergeben. Dabei wurde $size ein Standardwert zugewiesen.

 
Das geschieht in PHP über den Zuweisungsoperator =.

Bilder



Im ersten der beiden Funktionsaufrufe wird der Standardwert verwendet. Der zweite Funktionsaufruf sieht hingegen etwas anders aus. Dort wird der Standardwert überschrieben.


 
In jedem Fall ist darauf zu achten, dass die gewünschten Werte direkt angegeben werden müssen. Eine Referenz auf eine Variable – wie sie im folgenden Beispiel eingesetzt wird – führt zu einer Fehlermeldung.

function ausgabe($text, $size = $schriftgroesse)

Eine weitere mögliche Fehlerquelle ist die Reihenfolge der Parameter. Verwendet man nämlich Parameter mit Standardwerten, müssen diese immer am Ende stehen. Das liegt daran, dass die Argumente immer von vorne nach hinten an die Parameter gebunden werden. Folgendes würde demnach zu einer PHP-Fehlermeldung führen:

function ausgabe($size = 20, $text)

Auf Variablen zugreifen

Wie bereits beschreiben, gibt es innerhalb von Funktionen Probleme, wenn man auf Variablen zugreifen will, die außerhalb der Funktion definiert wurden. Dieses Problem lässt sich durch den Einsatz des Schlüsselworts global lösen. Werft zunächst einen Blick auf das folgende Beispiel:

<?php
function ausgabe(){
echo $ausgabe;
}
$ausgabe= "Hallo, Welt";
ausgabe();
?>

Hier wurde unterhalb der Funktion ausgabe() die Variable $ausgabe deklariert.

 
Auf diese Variable wird dann versucht, innerhalb der Funktion zuzugreifen.

Bilder



Dieser Versuch führt allerdings zu einer Fehlermeldung, da die Variable innerhalb der Funktion unbekannt ist.

 
Hier hilft das Schlüsselwort global weiter.

<?php
function ausgabe(){
global $ausgabe;
echo $ausgabe;
}
$ausgabe= "Hallo, Welt!";
ausgabe();
?>

Dadurch kann innerhalb der Funktion auf solche Variablen zugegriffen werden, die außerhalb deklariert wurden.

Bilder



 
PHP bietet darüber hinaus auch die Möglichkeit, Variablen zu deklarieren, die innerhalb von Funktionen unveränderbar sind, also vom übrigen Code nicht überschrieben werden können. Verwendet wird dafür das Schlüsselwort static.

Auch hierzu wieder ein Beispiel:

<?php
function ausgabe(){
static $zaehler;
$zaehler++;
echo $zaehler . "<br />";
}
$zaheler=0;
ausgabe();
$ausgabe= "Hallo, Welt";
$zahler=0;
ausgabe();
ausgabe();
?>

Das führt zu folgender Ausgabe:

Bilder



 

Mit Rückgabewerten arbeiten

Bislang wurde auf echo zurückgegriffen, um die Werte der Funktionen auszugeben. Das ist so natürlich nicht immer gewünscht, denn meistens möchte man die Werte eben nicht ausgeben, sondern diese anderweitig weiterverarbeiten. Verwendet wird dafür das Schlüsselwort return. Im folgenden Beispiel wird eine Summe berechnet. Diese wird jedoch – anders als in den bisherigen Beispielen – nicht aus,- sondern zurückgegeben. Dadurch kann im weiteren Verlauf des Skripts mit dem zurückgelieferten Wert gearbeitet werden. Die Zuweisung erfolgt dann so, wie ihr das von normalen Variablen her kennt.

<?php
 function summe($a, $b){
 $summe=$a+$b;
 return $summe;
 }
 $zahl=summe(4,6);
 $zahl++;
 echo $zahl;
?>

Hinter return folgt der Ausdruck, der zurückgeliefert werden soll. Die zurückgelieferten Werte können dabei von jedem Datentyp sein.

 
Es spielt also keine Rolle, ob es sich um ein Array, eine Zeichenkette oder beispielsweise um einen numerischen Wert handelt.

Bilder



Fazit

Mit den gezeigten Varianten sind die Voraussetzungen geschaffen, eigene Funktionen zu definieren und diese einzusetzen. Für welchen Zweck Funktionen definiert werden, bleibt letztendlich euch überlassen. Bevor ihr aber für ein bestimmtes Einsatzgebiet eine Funktion schreibt, solltet ihr unbedingt überprüfen, ob PHP nicht bereits eine passende vordefinierte Funktion bietet. Einen vollständigen Überblick aller in PHP zur Verfügung stehenden vordefinierten Funktionen könnt ihr euch auf der Seite http://www.php.net/manual/de/funcref.php verschaffen.

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von franzg
  • 14.05.2017 - 22:37

Sehr gut und verständlich erklärt! Vielen Dank!

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 07.10.2016 - 12:57

Danke für das Tutorial.

Portrait von dmtw2107
  • 16.11.2013 - 09:38

verständlich und toll erklärt danke für das tutorial

x
×
×