Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Funktionen und Prozeduren
Letztes Update: 04.09.2007 20:49:50

Navigation

Seite Startseite
Seite Aktuelles
Seite Seite News*
Seite Seite Pressemitteilungen*
Seite SELFPHP
Seite Seite Über SELFPHP
Seite Seite Werbung
Seite Seite Kontakt
Seite Seite Unsere Banner
Seite Seite Impressum
Seite Qozido
Seite Seite Diving Edition
Seite Seite Snorkeling Edition
Seite SELFPHP Dokumentation
Seite Seite PHP-Skripte
Seite Seite PHP Befehlsreferenz
Seite Seite PHP 5 Praxisbuch
Seite Seite PHP Code Snippets
Seite Seite SELFPHP in Buchform
Seite Anbieterverzeichnis
Seite Seite Globale Branchen
Seite Seite Webhosting/Server
Seite Services
Seite Seite Forum*
Seite Seite RSS-Feeds*
Seite Seite Downloads*
Seite Seite Gratis-Video-Lektionen*
Seite Seite SELFPHP auf Heft-CD*
Seite Seite Newsletter*
Seite Internet Security
 sponsored by  
Seite Stellenangebote*
Sedo - Bei uns wird PHP großgeschrieben
Seite Premium-Partner   
Webhosting/Serverlösungen
Seite Produktempfehlung   
Seite Seite SteadyBackup

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  
 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 100.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 




 

Verschachtelte Funktionen




Sie haben bereits erfahren, dass Sie in PHP Kontrollstrukturen verschachteln können. Das gilt auch für Funktionen. Im folgenden Beispiel wird eine Funktion zeigeAutoren() definiert. Sie enthält zwei weitere Funktionen zeigeAutor() und zeigeAutorin().

Beispiel

<?php
// Verschachtelte Funktionen
function zeigeAutoren() {
  function zeigeAutor() {
    echo "Matthias Kannengiesser";
  }
  function zeigeAutorin() {
    echo "Caroline Kannengiesser";
  }
  zeigeAutor();
  zeigeAutorin();
}
// Aufruf
zeigeAutoren();
?>

Ausgabe
Matthias Kannengiesser
Caroline Kannengiesser

Sie greifen, wie Sie sehen, auf die verschachtelte Funktion zu, indem Sie die übergeordnete Funktion zeigeAutoren() aufrufen. Hierbei verhalten sich die verschachtelten Funktionen wie lokale Variablen. Sie sind somit nur für die übergeordnete Funktion zugänglich (Parent-Funktion). Folgender Aufruf wäre daher außerhalb der Parent-Funktion nicht möglich:
// Aufruf (nicht möglich)
zeigeAutor();

Tipp: Mithilfe der verschachtelten Funktionen haben Sie die Möglichkeit, den Zugriff von außen auszuschließen.

Sonderfall: Aufruf von Parent- und anschließend Child-Funktion

An dieser Stelle würde ich gerne noch auf einen Sonderfall hinweisen, den Sie bei der Programmierung berücksichtigen sollten.

<?php
function zeigeAutoren()
{
  function zeigeAutor()
  {
    echo "Matthias Kannengiesser";
  }
  function zeigeAutorin()
  {
    echo "Caroline Kannengiesser";
  }
  zeigeAutor();
  zeigeAutorin();
}

// Aufruf der Parent-Funktion
zeigeAutoren();

// Anschließend kann auch auf die Child-Funktionen
// (untergeordneten Funktionen) außerhalb zugegriffen
// werden!
//
// Dies setzt jedoch voraus, dass die Parent-Funktion
// mindestens einmal vorab aufgerufen wurde!!!
zeigeAutor();
zeigeAutorin();
?>

Da vorab die Parent-Funktion aufgerufen wurde, steht dem PHP-Intepreter nun auch der direkte Zugriff auf die Child-Funktionen zur Verfügung. Schließlich befinden sich diese ja immer noch im Speicher und sind durch den Aufruf der Parent-Funktion nun auch außerhalb abrufbar.

Hinweis: Eine solche Anwendung, direkt nach dem Aufruf der Parent-Funktion außerhalb der Funktion auf die Child-Funktionen zuzugreifen, kommt jedoch äußerst selten vor. Die Verschachtelung soll schließlich genau so etwas vermeiden, um beispielsweise Programmabläufe besser von einander unterscheiden zu können und abzugrenzen. Es liegt jedoch immer auch beim Entwickler, wie die Entscheidung aussieht!



 




 sponsored by

Sedo - Bei uns wird PHP großgeschrieben


VERIO - An NTT Communications Company


HighText iBusiness


Webspace-Verkauf.de


video2brain




 Premium-Partner
 Webhosting/Serverlösungen

BPI-Systeme


Premium-Partner Pixel X


Premium-Partner First Colo


Premium-Partner dogado Internet




Qozido


© 2001-2008 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt