Moin!
Hallo Sven,
Funktionen in Funktionen
Stimmt, diese Eigenart von z.B. Pascal gibts in PHP nicht
Ist da nicht bereits etwas im Design falsch, wenn solch
eine Implemetierung benoetigt wird(*)?
Die Frage ist halt, was durch solch ein Feature gewonnen würde. In einer kompilierenden Sprache, die am Ende Maschinencode erzeugt, kann man sich die Verwendung von lokalen Funktionen ja durchaus als Optimierungsmöglichkeit des Kompilats erklären.
Aber während man in Pascal eben zwischen Funktionen und Prozeduren unterscheidet, und strukturierte Variable (RECORDs) sowie strikte Typisierung hat, hat man das alles in PHP eben nicht - und auch keine lokalen Funktionsdefinitionen. Es bringt wenig, diesen Punkt zu diskutieren - das ist eben so.
Ich meine, ich denke da an private Methode, anonyme Klassen oder
anonyme Properties (und noch einige andere Meoglichkeiten).
PHP erlaubt Lambda-Funktionen. Die tun das, was man so in etwa als "private Funktion" bezeichnen könnte, wenngleich auch sie im globalen Scope definiert werden - aber wenn man ihren Namen nicht kennt, wird der Zugriff halt schwierig. Wobei man dieses Argument ja auch auf jede andere definierte Funktion anwenden könnte.
- Sven Rautenberg
"Love your nation - respect the others."