Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

[Tutorial] Einführung in Funktionen

Sie befinden sich: Home > Webmaster News

[Tutorial] Einführung in Funktionen

Codeteile, die Sie in Ihrem Script mehrfach benötigen, schreiben Sie zweckmäßigerweise in eine eigene Funktion. Die Syntax hierfür ist:


<?php
function Name_Der_Funktion(parameter1,parameter2,...) {

// PHP-Code

return $rueckgabewert
}
?>

Nutzen Sie als Funktionsname etwas mit wiedererkennungswert, z.B. berechnePrimzahl() oder datumUmformen().

Sie können einer Funktion beliebig viele Werte übergeben. Die Funktion liefert aber nur eine einzige Variable zurück:


<?php
function plz_ort($postleitzahl,$stadtname) {

$adresszeile = $postleitzahl . ' ' . $stadtname;

return $adresszeile;
}
?>

Diese Funktion setzt Postleitzahl, ein Leerzeichen und den Stadtnamen zu einer Adresszeile zusammen. Angesprochen wird die Funktion durch Aufruf ihres Namens und der zu nutzenden Parameter:


<?php
$plz = '12345';
$ort = 'Testhausen';
$zeile = plz_ort($plz,$ort);
echo $zeile;
?>

Hier wird ausgegeben: 12345 Testhausen

Bitte beachten Sie, dass die Benennung der Variablen beim Aufruf der Funktion nicht der Benennung der Variablen in der Funktion selbst entsprechen muss. Wir rufen die Funktion auf mit plz_ort($plz,$ort); - in der Funktion werden die übergebenen Parameter dann in der Reihenfolge ihres Auftretens den Variablen der Funktionsdefinition zugeordnet. $plz wird also nach $postleitzahl gespeichert und $ort wird nach $stadtname gespeichert.

Die Funktion berechnet eine Variable $adresszeile, deren Inhalt zurückgegeben wird. Da der Funktionsaufruf mit $zeile =plz_ort($plz,$ort); erfolgte, steht der Funktionsrückgabewert dann auch in $zeile.

Wird in einer Funktion nichts kompliziertes berechnet, dann kann man die Verarbeitungsvorschrift auch hinter das Return schreiben:


<?php
function plz_ort($postleitzahl,$stadtname) {

return $postleitzahl . ' ' . $stadtname;
}
?>

Diese Funktion liefert den gleichen Wert zurück.

Alle in einer Funktion benutzten Variablen existieren zunächst nur innerhalb dieser Funktion. Sie können also in der Funktion nicht auf den Wert einer Variablen außerhalb nutzen. Das folgende Script:


<?php
function plz_ort($postleitzahl,$stadtname) { // Fehlerhafte Funktion

$adresszeile = $plz . ' ' . $ort;

return $adresszeile;
}

$plz = '12345';
$ort = 'Testhausen';
$zeile = plz_ort($plz,$ort);
echo $zeile;
?>

funktioniert deshalb nicht, weil innerhalb der Funktion nicht mit den der Funktion bekannten Übergabewerten, sondern mit den der Funktion unbekannten Variablen $plz und $ort gearbeitet wird.

Diese Eigenschaft einer Funktion ist sehr wichtig, denn auch umgekehrt kennt das Script nicht die Variablen innerhalb einer Funktion. Das folgende Script soll das veranschaulichen:


<?php
function rechnen($zahl1,$zahl2) { 

$ergebnis = $zahl1 * 15 + $zahl2 /3 ;

$zahl1 = 12345;
$zahl2 = 67890;

echo 'Zahl1 in der Funktion: ' . $zahl1 . '<br>';
echo 'Zahl2 in der Funktion: ' . $zahl2 . '<br>';

return $ergebnis;
}

$zahl1 = 12;
$zahl2 = 18;

$berechnung = rechnen($zahl1,$zahl2);
echo $berechnung . '<br>';

echo 'Zahl1 nach der Funktion: ' . $zahl1 . '<br>';
echo 'Zahl2 nach der Funktion: ' . $zahl2 . '<br>';
?>

Wir sehen, dass wir in der Funktion zwar die Werte der beiden Variablen verändert haben, dass die Variablen außerhalb der Funktion aber trotz gleichen Namens nicht berührt wurden.

Diese Eigenschaft ist sehr wichtig. Wir können nämlich funktionierende Funktionen einfach ohne jede Änderung in ein anderes Script einbauen ohne uns darüber Gedanken machen zu müssen, ob wir existierenden Code stören.

Anfangs hatten wir festgestellt, dass eine Funktion immer nur eine einzige Variable zurückgeben kann. Wenn Ihre Aufgabenstellung aber die Rückgabe mehrerer Werte verlangt, so können Sie diese in ein Array speichern und das Array als Rückgabewert einsetzen:


<?php
function stringEnden($string) { // Gibt das erste und das letzte Byte einer Zeichenkette zurück

if(strlen($string) == 0) return false;

$ret = array();
$ret[0] = substr($string,0,1);
$ret[1] = substr($string,-1);

return $ret;
}
?>

Funktionen können natürlich auch sehr komplexen Code enthalten. So ist es denkbar, dass Sie einer Funktion die WHERE-Klausel eines SQL-Statements übergeben, die Funktion dann mit diesem WHERE in einer MySQL-Tabelle liest und die gefundenen Daten zurückgibt.


<?php
function kundenLesen($where) { 

$sql = "SELECT knr,name FROM kunden WHERE $where";
$erg = mysql_query($sql);

if(mysql_num_rows($erg) == 0) return false; // Nichts gefunden

$row = mysql_fetch_assoc($erg); 

return $row;
}

$kundenarray = kundenLesen("name = 'meier' AND ort = 'koeln'")
?>

Funktionen setzen Sie immer dort ein, wo Sie gleichartigen Code an unterschiedlichen Stellen in Ihrem Programm haben, oder wenn Sie wissen, dass Sie Codeteile auch in anderen, neuen Projekten 1:1 weiterverwenden können.

(Autor: WolfgangWolfgang), Eingetragen am 22.07.2008


Schreib ein Kommentar

Name
Mail
Webseite
Kommentar