So, das habe ich jetzt. Die Gründe dazu sind erstmal wurscht, aber ich hab mal wieder eine lustige Performance-Frage
Vorher hatte ich das so, bevor ich es auf obige Variante (zu Gunsten der wie ich finde Übersichtlichkeit) umgeschrieben habe:
Naja, wer sich da nicht reinlesen will: Diese beiden Code-Schnippsel lesen die Methoden-Namen der eigenen Klasse, sortieren alle raus, die nicht auf Action enden und schneiden vom Rest das Action am Ende ab.
Meine Fragen zielen nun auf zwei Sachen:
1. Was kann man als perfomanter einstufen? Die erste Variante sollte mit array_map und array_filter kleinere Vorteile in Bezug auf Iteration liefern, aber leider wird dann ja insgesamt sogar 3 mal (einmal immer noch mit foreach) über das Array iteriert. Andererseits ist die foreach-Iteration dadurch kleiner und von "Unrat" befreit.
2. Inwiefern sind die anonymen Funktionen einzuschätzen? Ich hab die da oben nunmal so gebraucht, weil die beiden Array-Funktionen nunmal einstellige Callbacks fordern. Is das aber so sinnvoll? ^^ Denkbar wäre ja auch ne Konstruktion mit array_walk, der beide Schritte gleichzeitig durchzieht. ^^
PHP-Code:
$tempFunc = create_function('$methodName',
'return (substr ($methodName, -6) === "Action");');
$actions = array_filter (get_class_methods($this),$tempFunc);
$tempFunc = create_function('$methodName',
'return substr ($methodName, 0, -6);');
$actions = array_map ($tempFunc, $actions);
foreach ($actions as $action) {
// Do something useful
}
PHP-Code:
$actions = get_class_methods ($this);
foreach ($actions as $action) {
if (substr ($methodName, -6) === "Action") {
continue;
}
$action = substr ($methodName, 0, -6);');
// Do something useful
}
Meine Fragen zielen nun auf zwei Sachen:
1. Was kann man als perfomanter einstufen? Die erste Variante sollte mit array_map und array_filter kleinere Vorteile in Bezug auf Iteration liefern, aber leider wird dann ja insgesamt sogar 3 mal (einmal immer noch mit foreach) über das Array iteriert. Andererseits ist die foreach-Iteration dadurch kleiner und von "Unrat" befreit.
2. Inwiefern sind die anonymen Funktionen einzuschätzen? Ich hab die da oben nunmal so gebraucht, weil die beiden Array-Funktionen nunmal einstellige Callbacks fordern. Is das aber so sinnvoll? ^^ Denkbar wäre ja auch ne Konstruktion mit array_walk, der beide Schritte gleichzeitig durchzieht. ^^
Kommentar