Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Funktionen und Prozeduren
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: SELFPHP Forum ::

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Verschachtelte Funktionen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



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!




Bedingte Funktionen
 




:: Premium-Partner ::

Webhosting/Serverlösungen

MECO Systemhaus GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 


:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Webformulare automatisiert ausfüllen

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Suchen und Ersetzen in einer Tabellenspalte

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de