dedlfix: Fehlermeldungen E_ERROR abfangen

Beitrag lesen

echo $begrüßung;

ich hatte grad die Idee, sowas wie __autoload für Funktionien zu implementieren.
Das wird nicht funktionieren.
Auch nicht per Überladung?

Überladen ist meiner Meinung nach nicht das richtige Wort für diese unter PHP so bezeichnete Technik. Während __autoload() eine eigenständige Funktion ist, funktioniert "Überladung" nur mit Klassen. Es wird dabei nichts überschrieben oder verdeckt, sondern nur definierte Methoden aufgerufen, wenn Eigenschaften oder Methoden, auf die zugegriffen werden sollen, nicht existieren. Man kann diese Magie also nur für Methoden und nicht für eigenständige Funktionen verwenden.
Und dann ist es auch nicht möglich, zur Laufzeit Methoden an Klassen anzuflanschen, so dass bei der nächsten Instantiierung eines Objektes dieser Klasse selbiges mehr Methoden hat als im Ursprungscode definiert sind. (Es gibt die PECL-Extension classkit, doch die wird sicher nicht zur Verfügung stehen und ist außerdem nur im Beta-Stadium.)
Mit create_function() Funktionen zu erzeugen und die an bereits instantiierte Objekte anzuhängen halte ich auch für alles andere als besonders clever. Es mag im ersten Moment so aussehen, aber schafft nur mehr Verwirrung als nötig ("Wo ist denn jetzt schon wieder diese Methode deklariert?"). Zudem hindern solche Laufzeit-Code-Erweiterungen die PHP-Entwicklungsumgebungen wie beispielsweise Zend Studio und PHPEclipse wirksam am Unterbreiten von Codevervollständigungsvorschlägen, ein Hilfsmittel das ich deutlich mehr schätze als unübersichtliche Automatismen, die möglicherweise mehr Laufzeit fressen, als die ganze Sache Wert ist.

echo "$verabschiedung $name";