Will man mit einer PHP-Funktion komplexes anstellen, so hat man oft den Fall, dass die Funktion mit einer großen Anzahl an Paramtern gefüttert werden kann, was mitunter zu unübersichtlichen und sehr unpraktisch zu handelnden Parameterbergen führt. Ich habe mir dafür mit der Zeit eine recht elegante Methode zusammengebaut. Diese arbeitet mit einem assoziativen Array als einzigem Funktionsparameter und leistet gute Dienste.
Als Beispiel nehme ich hier eine Funktion, die eine Liste von Items als Array zurückliefert soll.
function GetItems( $params = array() ) { // definiere die Defaultwerte der Funktion $default = array( 'index' => 0, 'limit' => 10, 'categories' => array() ); // gleiche die übergebenen Parameter mit den Defaultwerten, der Funktion ab // "limit" und "categories" werden dabei überschrieben foreach( $default as $k => $v ) { if( !array_key_exists( $k, $params ) ) { $params[ $k ] = $v; } } /// $params enthält nun eine immer genau definierte Anzahl Werten $items = array() ... return( $items ); } $items = GetItems( array( 'limit' => 25, 'categories' => array( 3, 4 ) ); |
Der Funktionsaufruf liefert eine Liste von maximal 25 Items aus den Kategorien 3 und 4.
Nutzt man diese Methode der Parameterübergabe an mehreren Stellen, so macht es Sinn, dass “foreach”-Konstrukt in eine eigene Funktion auszulagern.