RSS Feed

Komplexe Parameterübergabe an PHP-Funktionen

04.02.2008 by naden

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.


Keine Kommentare »

Noch keine Kommentare

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>