Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Funktionen und Prozeduren
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
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!



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner LeaseWeb Germany GmbH
Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt