Tach!
Unter PHP gibt es keine Möglichkeit einer Funktionsreferenz. Man muss deren Namen als String angeben.
Ich mag mich täuschen, aber seit PHP5.3 ist das durchaus möglich! Dort kannst Du "anonyme" Funktionen definieren und in Variablen speichern:
Tatsächlich. Wenn man sie anonym hat, kann man sie über eine Variable referenzieren, als benannte Funktion jedoch nicht.
Wenn man die Sortierung nur einmal benötigt, darf man das auch gleich so notieren:
"So" meint in dem Fall direkt als anonyme Funktion am Ort der Verwendung, was ich ja auch als Beispiel in meinem Posting hatte.
Das empfinde ich als großen Mist, wenn Strings eine code-ähnliche Bedeutung haben, also Magic Strings sind. Man weiß manchmal nicht, wenn zwei Strings zufällig oder unachtsamerweise denselben Wert haben, ob sie dann auch dieselbe Bedeutung haben. Das Dilemma entsteht nicht, wenn man richtige Code-Elemente verwendet. Die lassen sich eindeutig über den gesamten Code verfolgen, im Gegensatz zu Strings.
Wahrscheinlich hat man damals genau deswegen die anonymen Funktionen eingeführt. Die gibt es sogar mit Closures:
Vermutlich nicht deswegen, sondern weil man es als Feature von anderswo kannte und die Stimmen nach dem Habenwollen laut genug waren.
Gut, das entschärft den Punkt mit den Magic Strings, aber die Verständlichkeit finde ich dadurch auch nicht großartig erhöht, wenn man da nun eine Variable hat, die da weiterhin den Funktionsaufruf versteckt.
dedlfix.