Tom: Schon gelöst. - Anderes Problem

Beitrag lesen

Hello,

mir hats anscheinend noch an den grundlagen ein bisschen gefehlt, da ich  nicht wusste, dass eine funktion nur in ihrem zweig ihre gültigkeit hat. habe sie nämlich in einer if {} definiert und wollte sie in der else{} aufrufen... *schäm*.

PHP kennt in der "normalen" Programmierweise keine Namensraumabgrenzung für Funktionen. Funktionen werden immer auf der obersten Ebene deklariert und implementiert und stehen dann dem gesamten Script zur Verfügung. Private Funktionen (Unterfunktionen) gibt es nicht.

Es gibt aber sehr wohl die Möglichkeit der bedingten Deklaration. Die ist aber mMn nur in zwei bis drei Fällen sinnvoll:

  • um Versionsbrücken zu bauen
  • um Kompilationsdefizite auszugleichen (z.B. die Funktion mime_content_type() )
  • um unterschiedliches Verhalten für unterschiedliche Eingangsbedingungen zu steuern.

Da Funktionen leider nicht wieder "desdeklariert" (entladen) werden können, so wie dies mit Variablen möglich ist, bietet sich für variante Verhaltensweisen eher
http://selfhtml.bitworks.de/artikel_datenstrukturen/function_reference.php.txt an.

Alternativ kann man die OOP-Variante von PHP benutzen, die mMn aber sehr viel mehr Power kostet, als gut geplante klassisch programmierte Scripte.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau