molily: Programmstruktur bei aufeinander aufbauenden Abläufen

Beitrag lesen

Hallo,

Beziehst du dich da jetzt lediglich auf das in der Tat unschöne Konzept der "Variablenfunktionen" - oder auch auf call_user_func/call_user_func_array, sprich erscheint dir die Nutzung letzterer auch zu "unsauber" und stellt daher keine Option dar?

Beide dieser Vorgehensweisen funktionieren im Grunde wohl gleich, sie sind anscheinend austauschbar, zumindest in diesem Normalfall:
$funktionsname = 'func'; $funktionsname();
$funktionsname = 'func'; call_user_func(funktionsname);
Bei beiden werden die Funktionsnamen als Strings »hartkodiert«. Gut, ob ich wie in JavaScript nun func(handler) oder in PHP func('handler') schreibe, gibt sich wohl wenig. In JavaScript wird aber alles naturgemäß über Events und Handler gesteuert, daher ist diese Praxis normal. In PHP scheint mir das eher verpönt und und das Übergeben einer nicht existierenden Funktion ergibt erst einen Fehler, wenn man sie aufrufen will (es sei denn, man baut darum noch einen Wrapper mit function_exists()). Außerdem sind in PHP gar nicht die ganzen spaßigen Dinge möglich, die durch Funktionsobjekte in JavaScript möglich sind: Ich kann nicht mal eben eine Methode eines Objektes als Handler angeben. Deshalb scheint es mir wenig erfolgsversprechend, meinen JavaScript-Programmierstil auf PHP zu übertragen... ;) In PHP bin ich solchen Fragen bisher immer durch ziemlichen Spaghetticode ausgewichen.

Mathias